0

誰か助けてください。値をmysqlに挿入し、列「いいね」が更新された回数を自動インクリメントすることにより、基本的なようなシステムを作成しようとしています。

基本的に、スクリプトは現在レコードがない場所に挿入し、レコードがある場合は更新します。

「user_id」を値として挿入しようとしていますが、liked_id だけがテーブルに挿入されています。「いいね」列は本来あるべきように自動インクリメントされていますが、ユーザーのセッション ID aswel である user_id を挿入する方法を見つける必要があり、これは挿入されていません。また、列を更新しようとしています ' 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 に答える