排序结果的PHP问题


PHP issue with ordering results

我使用此代码获取图像并按顺序显示

$qry2 = "SELECT * FROM bx_photos_main 
         WHERE Categories='Articles' 
         ORDER BY Title ASC";
$qryr2 = mysql_query($qry2) or die("Error selecting: ".mysql_error());
while($qryrow2 = mysql_fetch_array($qryr2)) {
    $photo_book_id = $qryrow2['ID'];
    $a = array ('ID' => $aAuthor['ID'], 'Avatar' => $photo_book_id);
    $aMedia_book_icon = BxDolService::call('photos', 'get_image', array($a, 'file'), 'Search');
    $aMedia_book_iconUrl = $aMedia_book_icon['file'];
    //if($media_book_id == $photo_book_id) {        
          $sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title=""><img src="'.$aMedia_book_iconUrl.'"></a>';
    // }
}

一切都很好,但一旦我检查了结果,就像上面if($media_book_id == $photo_book_id) {评论的那样,我就完全失去了秩序。

为什么?怎么了?当我使用PHP语句时,为什么我会打乱结果的顺序?我该如何解决此问题?

感谢

这里发生的情况是,由于语句本身,if语句删除了一些行。当这两个变量不相等时,您将无法将当前行中的信息添加到$sRet变量中。

$sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title="">
<img src="'.$aMedia_book_iconUrl.'"></a>';

您可以在if语句中添加一个else,以查看它们何时不相等。你的if语句应该是这样的:

if($media_book_id == $photo_book_id) {        
    $sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title="">
             <img src="'.$aMedia_book_iconUrl.'"></a>';
} else {
    echo "Error - Media_book_id: $media_book_id. Photo_book_id: $photo_book_id";
}