Php mySQL按字符串排序

Php mySQL按字符串排序,php,mysql,Php,Mysql,我正在使用以下功能从我的数据库中选择和排序一些图像,但排序不起作用 $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

我正在使用以下功能从我的数据库中选择和排序一些图像,但排序不起作用

$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>';

   }
}
$qry=“从modzzz_文章中选择*屏幕截图,其中条目_id=””$aDataEntry['id']。”;
$qryr=mysql\u query($qry)或die(“错误选择:”.mysql\u Error());
while($qryrow=mysql\u fetch\u数组($qryr)){
$media_book_id=$qryrow['media_id'];
$qry2=“从bx_照片_main中选择*,其中ID=”。$media_book_ID。”“按标题说明订购”;
$qryr2=mysql\u query($qry2)或die(“错误选择:”.mysql\u Error());
而($qryrow2=mysql\u fetch\u数组($qryr2)){
$photo_book_id=$qryrow2['id'];
$a=array('ID'=>$a作者['ID'],'Avatar'=>$photo\u book\u ID);
$aMedia_book_icon=BxDolService::call('photos','get_image',array('a','file'),'Search');
$aMedia_book_iconUrl=$aMedia_book_图标['file'];
$sRet.='';
}
}
按标题排序ASC
DESC
始终返回相同的内容

有什么错误吗

问题可能是Title列不是INT值而是VARCHAR

如果这是问题所在,我无法更改列标题,是否有一种简单的方法来排序结果


谢谢

这里您只限制一条记录:

   $qry2="SELECT * FROM bx_photos_main WHERE ID='".$media_book_id."' ORDER BY Title DESC";
因此,订单ASC或DESC将永远不变。 假设
$media\u book\u id=1

SELECT * FROM bx_photos_main WHERE ID='".$media_book_id."' ORDER BY Title DESC

将永远输出(使用表结构)

因为我没有另一行可以按升序或降序排列

如果我有两行,它将为
ASC
输出:

id | title | file
-----------------------
01 | bar   | test.jpg
02 | foo   | test.jpg
id | title | file
-----------------------
01 | foo   | test.jpg
02 | bar   | test.jpg
对于
DESC

id | title | file
-----------------------
01 | bar   | test.jpg
02 | foo   | test.jpg
id | title | file
-----------------------
01 | foo   | test.jpg
02 | bar   | test.jpg

您还需要哪些其他数据?第二次查询只得到一个结果。。。您可以使用其中的ID=。。。这个命令什么也做不了!ID是一个自动增量列吗?您能隔离查询,在mysql中执行它(不是通过php)并在这里发布选择和结果吗?这可能会有所帮助。包括您的表模式,以及每个表中的一些示例数据……顺便说一下,mysql_*函数的使用非常简单。相反,您应该使用MySQLi或PDO,这将使您的代码更安全、更清晰、更容易进行故障排除。这意味着什么?如何选择正确的值?如果您只选择了一个ID,
$query2
,结果只有一行,我会感到困惑。将更新我的答案。