PHP/Mysql array_pop缺少第一个值

dra*_*ndy 0 php mysql arrays

基本上会发生这样的事情:

一个人去特定的画廊,比如GalleryID = 42.我执行查询以获取该库中的所有图像(GalleryID = 42的值),并执行单独的查询以获取与该库关联的所有注释(例如GalleryID = 42).在400张总图像中,3张不同图片可能只有4条评论.

当我用do/while循环遍历图像并显示它们时,我搜索每个图片在循环时放置的注释数组.如果找到与特定图片匹配的图片ID,则会显示评论值(Comment,CommentAuthor和CommentDate).

这是图像的查询:

SELECT * FROM GalleryData WHERE GalleryID = 42
Run Code Online (Sandbox Code Playgroud)

以及对评论的查询:

SELECT Comment, CommentAuthor, CommentDate, ID FROM Comments WHERE CategoryID=42
Run Code Online (Sandbox Code Playgroud)

然后我使用此代码将注释放在可重用的查询中:

while(($Comments[] = mysql_fetch_assoc($rsComments)) || array_pop($Comments));
Run Code Online (Sandbox Code Playgroud)

然后我用它来遍历数组以找到与特定图片相关的注释

foreach($Comments as $comment) 
{
  if($comment['ID'] == $row_rsGalleries['ID']) 
  {
    echo '<p>'.$comment['Comment'].' - '.$comment['CommentAuthor'].'</p>';
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,此代码似乎不包含查询中的第一个注释.

现在,这是我做过这样的第一个项目之一,我不是一个php/mysql专家,一个新手用户.

当我运行查询时,它会得到4个结果,但是数组只包含3个,第一个结果丢失了.

Pek*_*ica 5

这个结构看起来对我很疯狂.我不明白为什么它会切断第一个元素,但我真的不想花时间去发现:你需要解决这个问题.||在这种情况下使用永远不会给你想要的结果.

你能描述一下这应该做什么吗?