基本上是这样的:
一个人去了一个特定的画廊,比如说 GalleryID=42。我执行查询以获取该图库中的所有图像(GalleryID=42 的值),并执行单独的查询以获取与该图库关联的所有评论(例如 GalleryID=42)。总共 400 张图片中的 3 张不同图片总共可能只有 4 条评论。
当我使用 do/while 循环遍历图像并显示它们时,我在循环时搜索为每张图片放置的评论数组。如果找到与特定图片匹配的图片 ID,它会显示评论值(Comment、CommentAuthor 和 CommentDate)。
这是对图像的查询:
SELECT * FROM GalleryData WHERE GalleryID = 42
评论查询:
SELECT Comment, CommentAuthor, CommentDate, ID FROM Comments WHERE CategoryID=42
然后我使用这段代码将评论放入可重用查询中:
while(($Comments[] = mysql_fetch_assoc($rsComments)) || array_pop($Comments));
然后我使用 this to this 循环遍历数组以查找与特定图片关联的评论
foreach($Comments as $comment)
{
if($comment['ID'] == $row_rsGalleries['ID'])
{
echo '<p>'.$comment['Comment'].' - '.$comment['CommentAuthor'].'</p>';
}
}
问题是,这段代码似乎不包含查询中的第一条评论。
现在,这是我做过的第一个项目,我不是 php/mysql 专家,而是新手。
当我运行查询时,它给出了 4 个结果,但数组只包含 3 个,第一个结果丢失了。
最佳答案
这个结构在我看来简直是疯了。我不明白为什么它会切断第一个元素,但我真的不想花时间去找出答案:你需要修正那句话。在这种情况下使用 ||
永远不会给你想要的结果。
你能描述一下这应该做什么吗?
关于PHP/Mysql array_pop 缺少第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3884347/