【问题标题】:Incrementing Int value using UPDATE MySqli PHP使用 UPDATE MySqli PHP 增加 Int 值
【发布时间】:2017-08-10 11:31:29
【问题描述】:

我是 SQL 和 PHP 的新手,我正在尝试创建一个基本的“like”系统,每次按下 like 按钮时都会在数据库中保存一个 int 计数。我在网上查看过,但似乎无法找出我做错了什么。它适用于创建新记录,但似乎无法增加预先存在的条目的值。我敢肯定它很小。

<form action="post-like.php" method="POST">
  <input type="hidden" name="post_id" value="post1"></input>
  <button type="Submit">Like!</button>
</form>


// Create connection
$conn = mysqli_connect($hostname, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$postid = $_POST['post_id'];
$sqlcheck = "SELECT * FROM  `likes`WHERE  `postid` =  '$postid'LIMIT 0 , 30";
$checkpost = mysqli_query($conn, $sqlcheck);
$check_post = mysqli_fetch_row($checkpost);

if ($check_post > 0) {
    $sqlike = ("UPDATE likes SET postlikes = postlikes + 1 WHERE postid = '".$postid."'");
    echo "<script>alert('" . $postid . "');</script>";

    if (mysqli_query($conn, $sqllike)) {
        echo "New like created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }

} else {
    $sqlnewpost = "INSERT INTO  `tentoesdown`.`likes` (`postid` ,`postlikes`)VALUES ('$postid',  '1');";
    echo "<script>alert('ya2');</script>";

    if (mysqli_query($conn, $sqlnewpost)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
}

找不到这个错误!

【问题讨论】:

  • 第一个 echo 打印的 postid 是否有效?可以添加表格结构的图片吗?
  • @altoids 是的,所有三个回声都返回。我已经添加了结构的图像 - 这就是你要找的吗?谢谢。
  • 您在哪里执行更新?您正在分配 $sqlike 查询但不执行它。
  • @altoids 谢谢。知道了。 :)
  • 你是怎么解决的?

标签: php html mysql database mysqli


【解决方案1】:

改变这一行:

if ($check_post > 0) {

到:

if ( (count($check_post) > 0 ) {

mysqli_fetch_row 将始终返回一个数组,而不是一个数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2020-01-14
    相关资源
    最近更新 更多