我使用以下函数从我的数据库中选择和订购一些图像,但是ORDER不起作用。
$qry="SELECT * FROM modzzz_articles_screenshots WHERE entry_id='".$aDataEntry['id']."'";
$qryr=mysql_query($qry) or die("Error selecting: ".mysql_error());
while($qryrow = mysql_fetch_array($qryr)) {
$media_book_id = $qryrow['media_id'];
$qry2="SELECT * FROM bx_photos_main WHERE ID='".$media_book_id."' ORDER BY Title DESC";
$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'];
$sRet .='<a class="fancybox" rel="gallery" href="'.$aMedia_book_iconUrl.'" title=""><img src="'.$aMedia_book_iconUrl.'"></a>';
}
}
ORDER BY title ASC
或DESC
始终返回相同的内容。
有错误吗?
问题可能是Title列不是INT值而是VARCHAR?
如果这是问题所在,我无法更改列标题,是否有一种简单的方法来订购结果?
由于
答案 0 :(得分:2)
这里只限制一条记录:
$qry2="SELECT * FROM bx_photos_main WHERE ID='".$media_book_id."' ORDER BY Title DESC";
因此,订单ASC或DESC将是相同的。
假设$media_book_id = 1;
SELECT * FROM bx_photos_main WHERE ID='".$media_book_id."' ORDER BY Title DESC
或
SELECT * FROM bx_photos_main WHERE ID='".$media_book_id."' ORDER BY Title DESC
将输出EVER(带有您的表结构)
id | title | file
-----------------------
01 | Test | test.jpg
因为我没有其他行可以升序或降序。
如果我有两行,则会输出ASC
:
id | title | file
-----------------------
01 | bar | test.jpg
02 | foo | test.jpg
对于DESC
:
id | title | file
-----------------------
01 | foo | test.jpg
02 | bar | test.jpg