您好我正在尝试加入3个表并从中获取所有信息表名:fav,images,posts
fav table store:userid,postid(此表适用于喜爱的广告)
图像表存储:postid,path(1-5)
帖子表存储有关帖子的所有信息:id,userid,title等
所以现在我正在做sql查询女巫应该从fav和joing帖子和图片中选择所有内容$_session["userid"] = to userid
这个看起来如何:
<?php
$userid = $_SESSION["userid"];
$sql = "SELECT * FROM fav f JOIN posts p ON f.postid = p.id JOIN images i ON p.id = i.postid WHERE userid='$userid' ";
$res = mysqli_query($connect,$sql);
while ($row = mysqli_fetch_assoc($res)) {
$postid = $row["postid"];
?>
<div id="ads">
<div id="titlepic">
<a href="review.php?id=<?php echo $postid; ?>"><?php echo $row["title"]; ?></a><br>
<a href="review.php?id=<?php echo $postid; ?>"><img src="<?php if(!empty($row["path1"])) { echo $row["path1"]; } else echo "image/noimage.png"; ?>" height="100px" width="150px"></a>
</div>
<div id="dates">
<b>Date Added:</b> <?php echo date('m/d/Y H:i', $row["dateadded"]); ?><br>
<b>Renew Date:</b> <?php if($row["renewdate"] > 0){ echo date('m/d/Y H:i', $row["renewdate"]); } ?><br>
<b>Location:</b> <?php echo $row["location"]; ?><br>
<b>Price:</b> <?php echo $row["price"]."£"; ?><br>
</div>
</div>
<hr width="100%">
<?php
}
?>
但是在我发出WHERE userid='$userid'
"Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\project\fav.php on line 129"
错误后我收到错误
我不明白的问题是什么?如果我做不到,那么所有部分都可以正常工作而没有警告和错误
答案 0 :(得分:1)
这个错误意味着,你的查询有问题。所以尝试在phpmyadmin中运行你的查询,看看错误来自哪里。
也许是你的问题:
userid
在您的查询中含糊不清
所以选择哪个表必须在where子句f或p中:)
答案 1 :(得分:1)
将查询更改为
$sql = "SELECT f.*,p.*,i.* FROM fav f JOIN posts p ON f.postid = p.id JOIN images i ON p.id = i.postid WHERE f.userid='$userid' ";
我假设userid属于fav f,如果它属于这些表,则将其更改为p.userid或i.userid。