0

有人可以帮帮我吗。我正在尝试通过将值插入 mysql 并自动增加“likes”列的更新次数来创建一个基本的类似系统。

基本上,脚本将插入当前没有任何记录的位置,如果有记录则更新。

我也试图将“user_id”作为一个值插入,但只有 like_id 被插入到表中。'likes' 列正在按应有的方式自动增加,但我需要找出如何插入 user_id,它是用户会话 id aswel 而这没有被放入。我也在尝试更新列' user_id_has_liked' 从枚举值 0 到 1 作为最终结果。

有人可以告诉我哪里出错了。谢谢

<?php

    require_once('includes/session.php');
    require_once('includes/functions.php');
    require('includes/_config/connection.php');

    session_start();

        confirm_logged_in();

        if (isset ($_GET['to'])) {
        $user_to_id = $_GET['to'];


    }


    if (!isset($_GET['to']))
        exit('No user specified.');

    $user_id = $_GET['to'];


    $result = mysql_query("SELECT * FROM ptb_likes WHERE liked_id ='".$user_to_id."' ");

    if( mysql_num_rows($result) > 0) {
    mysql_query("UPDATE ptb_likes SET likes = likes +1 WHERE liked_id = '".$user_to_id."' ");


        $user_to_id = mysql_query("ALTER TABLE likes AUTO_INCREMENT = $id");
    }
    else
    {
        mysql_query("INSERT INTO ptb_likes (user_id,liked_id) VALUES ('".$_SESSION['user_id'].",".$user_to_id."') ");

    }

    $result1 = mysql_query("UPDATE ptb_likes SET user_id_has_liked='1' WHERE user_id=".$_SESSION['user_id']."") 
    or die(mysql_error());




    if($result) 
    { 

    header("Location: {$_SERVER['HTTP_REFERER']}");

    }
    ?>
4

1 回答 1

0

正如其他人所说, mysql_* 语句已被贬低,请使用 mysqli_* 语句......

第一个问题是用户 ID 插入语句中的代码缺少一些引号,它应该如下所示:

            mysql_query("INSERT INTO ptb_likes (user_id,liked_id) VALUES ('".$_SESSION['user_id']."','".$user_to_id."') ");

user_id_has_liked 查询问题可能是由于枚举变量是 mysql 中的整数引起的。您还可以尝试将查询保存到查询变量并将变量传递给查询函数以提高可读性...

            $query = "UPDATE ptb_likes SET user_id_has_liked='1' WHERE user_id=".$_SESSION['user_id'];
            $result1 = mysql_query($query) or die(mysql_error());
于 2013-02-10T05:08:25.197 回答