我正在使用此代码获取图片并按顺序显示
$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语句时,为什么会松开结果的顺序?我该如何解决这个问题?
由于
答案 0 :(得分:0)
这里发生的是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";
}