$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错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法
我认为代码不言自明,但我不明白,如何解决这个问题。我做错了什么?我只想获取用户ID(uid)等于$ loggedInUser-> user_id的视频ID(vid)。
答案 0 :(得分:4)
你的意思是这样的吗?
SELECT tab.* FROM tab JOIN fav ON tab.ID = fav.vid AND fav.uid = ###
这样您就不需要执行两个查询来获得相同的结果。如果您还需要fav
中的某些值,则可以将其添加到SELECT
,就像tab.*
一样(选择tab
中的每一列)。
答案 1 :(得分:1)
mysql_query
不会返回字符串。它返回一个资源。
检查PHP-MySQL doc以了解如何从查询结果中检索数据。
答案 2 :(得分: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");
EDITS
$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);
答案 3 :(得分: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 ."");
答案 4 :(得分:0)
试试这个:
function getQueryData($sQuery)
{
$result = mysql_query($sQuery);
$rows = Array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$rows[] = $row;
}
@mysql_free_result($result);
return $rows;
}
$video = getQueryData("SELECT vid FROM fav WHERE uid = ". $loggedInUser->user_id ."");
if(!empty($video)) {
$result = getQueryData("SELECT * FROM tab WHERE ID = ". $video[0]['vid'] ."");
print_r($result);
}
答案 5 :(得分:-1)
我能给出的唯一答案是RTM :)但我会向你解释一下:
方法mysql_query()返回一个资源。资源不是字符串,整数或数组。但是您可以从资源中获取所需的所有数据。例如,您可以获取行数(mysql_num_rows())或查询选择的数据(mysql_fetch_assoc()将其作为关联数组返回。)
有关详细信息,请查看php-manual中提供的示例:http://www.php.net/manual/en/function.mysql-fetch-assoc.php
但请使用mysqli或PDO而不是mysql。我在这里只是谈论你在PHP中使用的函数。从PHP 5.5开始,不推荐使用PHP扩展mysql,你不应该使用现在已经知道的东西。如果你问,为什么它被弃用:http://de2.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated