PHP不显示来自MYSQL查询的结果

时间:2016-05-13 14:15:43

标签: php mysql

我有以下代码

$(".more-click-back").fadeIn(300)

现在我遇到的问题是php不显示MYSQL查询返回的结果,该查询存储在会话中稍后会在虚拟页面上显示的代码中出现以下错误

  

警告:mysqli_num_rows()期望参数1为mysqli_result

我的SQL查询完全符合我的需要,所以我真的不想改变它。我只需要一些关于如何让PHP回应@uid的建议 有人愿意帮我解决这个问题吗?如果是这样的话。

1 个答案:

答案 0 :(得分:1)

你的$ sql中有3个查询,所以你应该使用multi_query函数 http://php.net/manual/en/mysqli.multi-query.php

您可以将第一个查询更改为:

SET @uid = 0;
SELECT @uid := ID FROM channels WHERE Used = 0 ORDER BY RAND() LIMIT 1);

更新您可以尝试使用所有评论改进修改代码片段。

$sql = 'SET @uid = 0;';
$sql .= 'SELECT @uid:= ID FROM channels WHERE Used = 0 ORDER BY RAND() LIMIT 1);';
$sql .= 'UPDATE channels SET Used = 1 WHERE ID = @uid;';
$sql .= 'SELECT * FROM channels WHERE ID IN = @uid;';
if (mysqli_multi_query($conn, $sql)) {
   do {
       $result = mysqli_store_result($conn);
   } while(mysqli_next_result($conn));
   if (mysqli_num_rows($result) > 0) {
     $text = '';
     while($row = mysqli_fetch_assoc($result)) {  
       $Channel_Location = $row['Channel_Location'];
       $text =  $text . $Channel_Location;
     }       
   }
} else {
  die( mysqli_error($conn) );
}