-3
$video = mysql_query("SELECT vid FROM fav WHERE uid = ". $loggedInUser->user_id ."");
$result = mysql_query("SELECT * FROM tab WHERE ID = ". $video .""); 
if (!$result)
die("mySQL error: ". mysql_error());
while($row = mysql_fetch_object($result));
echo ",$row->ID,";

mySQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

I think the code speaks for itself, but I don´t get it, how to solve this. What did I do wrong? I only want to get the video id (vid) where the user id (uid) equals $loggedInUser->user_id.

4

6 に答える 6

4

このようなことを意味しますか?

SELECT tab.* FROM tab JOIN fav ON tab.ID = fav.vid AND fav.uid = ###

これにより、同じ結果を得るために 2 つのクエリを実行する必要がなくなります。からの値も必要な場合は、同様favにそれらを追加できます(からすべての列を選択します)。SELECTtab.*tab

于 2013-04-25T07:08:49.017 に答える
1
$rec    = mysqli_query("SELECT vid FROM fav WHERE uid = ". $loggedInUser->user_id);  
$video  =   mysqli_fetch_assoc($rec);       
$id =   $video['vid'];      
$result = mysqli_query("SELECT * FROM tab WHERE ID = $id");    

編集

$records    =   array();
$rec    = mysqli_query("SELECT vid FROM fav WHERE uid = ". $loggedInUser->user_id);  

while($row = mysqli_fetch_assoc($rec)){
    $id =   $row['vid'];      
    $result = mysqli_query("SELECT * FROM tab WHERE ID = $id");  
    $records[]  =   mysqli_fetch_assoc($result);
}

echo '<pre>';
print_r($records);
于 2013-04-25T07:10:09.317 に答える
1

mysql_query文字列を返しません。リソースを返します。

クエリ結果からデータを取得する方法については、PHP-MySQL ドキュメントを確認してください。

于 2013-04-25T07:08:49.187 に答える
0

ここを使用して結果を取得し、mysql_fetch_array()その値を割り当てる必要があります

$arr= '';
$video = mysql_query("SELECT vid FROM fav WHERE uid = ". $loggedInUser->user_id ."");
while($row = mysql_fetch_array($video)) {
    $arr = $row['vid'];
}
$result = mysql_query("SELECT * FROM tab WHERE ID = ". $arr .""); 
于 2013-04-25T07:09:44.807 に答える