PHP / MySQL Like Button

时间:2011-09-13 11:31:03

标签: php mysql

我使用以下代码为我的产品页面制作了一个“赞”按钮:

<?php
if('POST' == $_SERVER['REQUEST_METHOD']) {
$sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
$result=mysql_query($sql);
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<input type = "submit" value = "like"/>
</form>

就像一个小问题的魅力激励一样,每次访问页面都会注册“喜欢”。

有人可以帮助解释我需要更新/添加的内容,以便只在提交实际表单时注册新的“赞”吗?

由于 丹

4 个答案:

答案 0 :(得分:8)

一个更好的解决方案,而不是提交页面和整个页面重新加载将是一个AJAX请求,这就是Facebook'喜欢'工作的方式。

这可以使用jQuery JavaScript库来实现。

总体概要是: -

1)点击按钮

2)发送AJAX请求

3)更新HTML以显示按钮已被点击并阻止重新点击按钮。

答案 1 :(得分:4)

<?php
if ($_POST['like']){
   $sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
   $result=mysql_query($sql);
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
   <input type = "submit" name="like" value = "like"/>
</form>

答案 2 :(得分:3)

<?php
if($_POST['like']) {
$sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
$result=mysql_query($sql);
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<input type = "submit" value = "like" name='like'/>
</form>

这应该有用; - )

答案 3 :(得分:1)

首先 - 在你的SQL中你有:

`product_id` = '1'

不要将id值用作字符串:

`product_id` = 1

关于您的问题:

添加另一个条件:

if ('POST' == $_SERVER['REQUEST_METHOD']) {
    if ( !empty($_POST['submitType']) && ( $_POST['submitType'] == 'like' ) ) {
        $sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
        $result=mysql_query($sql);
    }
}

并在html中:

<input type = "submit" name="submitType" value = "like"/>