1

この関数の実行に問題があります。それが実行されるとき、それは私のlike_requestsテーブル内でrequest_idが変数にリンクされたmysqlクエリ結果ではなく、$selectリソースID#22であることを除いて、私が望むことを正確に実行します。結果をエコーアウトしようとするとリソースIDが表示されると思いましたが、echoを使用していません。コードの何が問題になっていますか?

function update_likes($band_requested, $new_likes, $session_user_id) {

    $select = mysql_query("SELECT `primary_id` FROM `requests` WHERE 

    `user_requester_id` = '$session_user_id' AND `person_requested` = 

    '$band_requested'");

    $sql_2 = "INSERT INTO `like_requests` (user_id, request_id) VALUES 

    ('$session_user_id', '$select')";   

    mysql_query($sql_2);

}

$band_requested = 'rally done';
$new_likes = 239;
$the_session_user_id = 3;

update_likes($band_requested, $new_likes, $the_session_user_id);

修正された回答で更新するDavidの助けを借りて修正されたコードは次のとおりです。

function update_likes($band_requested, $new_likes, $session_user_id)

{

$select = mysql_query("SELECT `primary_id` FROM `requests` WHERE `user_requester_id` = 

'$session_user_id' AND `person_requested` = '$band_requested'");

$row = mysql_fetch_row($select);

$request_id = $row[0];  

$sql_2 = "INSERT INTO `like_requests` (user_id, request_id) VALUES ('$session_user_id', 

'$request_id')";    

mysql_query($sql_2);

}
4

1 に答える 1

1

mysql_queryは、スカラー値だけでなく、リソース( http://php.net/manual/en/function.mysql-query.php )を返します。mysql_fetch_row()おそらく必要な1つの行を取得し、その行を変数に割り当ててから、のような配列構文を$row取得するなどの関数を使用する必要があります。ちなみに、どうやら緩和されているようで、メソッドでMySQLiAPIを使用する必要があります。primary_id$row['primary_id']mysql_querymysqli_query()

于 2012-08-14T01:19:27.507 に答える