我试图根据3个要求选择我的帖子表中的所有行。来自帖子表的用户标识=来自用户表的用户标识来自帖子表的主机ID =来自用户表的用户ID帖子表中的commentid =零我想选择满足这些要求的所有行。这是错误...Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in C:\xampp\htdocs\loginsystem\includes\posts.inc.php:108 Stack trace: #0 C:\xampp\htdocs\loginsystem\home.php(38): getUploads(Object(mysqli)) #1 {main} thrown in C:\xampp\htdocs\loginsystem\includes\posts.inc.php on line 108这是我的代码...function getUploads($conn) { $userName = $_GET["user"]; $sqluserid = "SELECT userid FROM users WHERE userName = $userName"; $userid = mysqli_query($conn, $sqluserid); $sqlusercontent = "SELECT * FROM posts WHERE hostid = $userid AND userid = $userid AND commentid = 0"; $usercontent = mysqli_query($conn, $sqlusercontent); $postid = 1; // This is the actual upload content while ($row = $usercontent->fetch_assoc()) { echo "<div class='postbox'><p>"; echo $row['title']."<br>"; echo $row['date']."<br>"; echo "<div><img src='posts/".$userid."/".$postid.".*></div>"; echo $row['description']."<br>"; echo "</p>"; echo "</div>"; $postid++; } }
2 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
您不是在调用$userid->fetch_assoc()获取第一个查询的结果。您需要执行此操作,然后使用$row['userid']来使用户ID脱离行。
在第一个查询中,您还需要在用户名前后加上引号。最好使用预处理语句和$stmt->bind_param()来防止SQL注入。
但是首先不需要两个查询,您可以连接两个表。
SELECT p.*
FROM posts AS p
JOIN users AS u ON p.userid = u.userid AND p.hostid = u.userid
WHERE u.username = '$userName' AND p.commentid = 0
您应该检查查询的结果,然后将在第一个查询中收到有关语法错误的通知。
$result = mysqli_query($conn, $sql) or die($conn->error);
- 2 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消