基本上会发生什么是这样的:PHP/Mysql array_pop缺少第一个值
一个人去特定的画廊,说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));
然后我使用它来循环访问数组以查找与特定项相关的注释ar picture
foreach($Comments as $comment)
{
if($comment['ID'] == $row_rsGalleries['ID'])
{
echo '<p>'.$comment['Comment'].' - '.$comment['CommentAuthor'].'</p>';
}
}
问题是,该代码似乎不包括查询中的第一个注释。
现在,这是我做了这样的事情的第一个项目之一,我不是一个PHP/MySQL专家,新手用户。
当我运行查询时,它出现了4个结果,但数组只包含3,第一个结果丢失。
它从一个Mysql查询中获取所有值,并将其放入一个可反复使用的数组中,我可以一遍又一遍地使用它。值来自: – dragboatrandy 2010-10-07 17:52:50
嗯,一方面,你将会把'bool'值附加到'$ Comments'上......'mysql_fetch_assoc(...)|| array_pop(...)'在赋值之前被赋值,结果总是一个布尔值。 – meagar 2010-10-07 17:52:53
为什么你有'|| array_pop($评论)'? – MatTheCat 2010-10-07 17:53:57