我正在使用以下函数从我的数据库中选择和排序一些图像,但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
总是返回相同的内容。
有什么错误吗?
问题可能是标题列不是 INT 值而是 VARCHAR?
如果这是问题所在,我无法更改标题列,有没有一种简单的方法来对结果进行排序?
谢谢
这里只限制一条记录:
$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
将输出永远(使用您的表格结构(
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