我使用此代码获取图像并按顺序显示
$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";
}