php动态SQL数组列表-如何设置顺序?

php动态SQL数组列表-如何设置顺序?,php,mysql,arrays,list,Php,Mysql,Arrays,List,我有一个定制的网络商店,它是用php制作的。它从mySQL数据库中存储的特定类别中获取我的所有产品,并在表中为我的客户显示它们。这个程序看起来像是要按添加的日期对它们进行排序,但这不起作用。我已经有好几次在没有帮助的情况下尝试不同的变量。这里的语法有问题吗 这是实际列表的代码(位于页面的上方): $dynamicList=”“; $sql=mysql\u查询(“按日期从产品订单中选择*添加描述限制5”); $productCount=mysql_num_rows($sql);//计算输出量 如果

我有一个定制的网络商店,它是用php制作的。它从mySQL数据库中存储的特定类别中获取我的所有产品,并在表中为我的客户显示它们。这个程序看起来像是要按添加的日期对它们进行排序,但这不起作用。我已经有好几次在没有帮助的情况下尝试不同的变量。这里的语法有问题吗

这是实际列表的代码(位于页面的上方):

$dynamicList=”“;
$sql=mysql\u查询(“按日期从产品订单中选择*添加描述限制5”);
$productCount=mysql_num_rows($sql);//计算输出量
如果(isset($_GET['category'])){
$category=$_GET['category'];
$sql=mysql_查询(“从类别为“$category”的产品中选择*);
$num\u rows=mysql\u num\u rows($sql);
如果($num_rows>0){
while($row=mysql\u fetch\u数组($sql)){
$id=$row[“id”];
$product_name=$row[“product_name”];
$price=$row[“price”];
$date\u added=strftime(“%b%d,%Y”,strotime($row[“date\u added”]);
$dynamicList='
“.$product_name”。
$。$价格。'
'; } } } mysql_close(); ?>
我的产品数据库具有上面代码中列出的所有属性,它们都已填写(如产品名称、添加日期、类别等)。我真的希望能够让排序按日期工作,或添加一个新的列,如“显示顺序”,然后我只需将它们全部编号并完成。但我不能仅仅替换变量,因为当前变量无论如何都不起作用:(


如果你们有什么想法,请告诉我。谢谢!

在示例代码中有两条sql语句。第一条语句有一个ORDER BY子句,但似乎没有在任何地方使用


第二条SQL语句没有ORDER BY子句,这是用于构建dynamicList表的语句。

我认为第二条查询只是为了获得“ORDER BY”,请尝试以下操作

<?php 

     $dynamicList = "";
     $sql = mysql_query("SELECT * FROM products ORDER BY date_added DESC LIMIT 5");
     $productCount = mysql_num_rows($sql); // count the output amount

     if(isset($_GET['category'])) {
        $category = $_GET['category'];
                 $sql = mysql_query("SELECT * FROM products WHERE category = '$category' ORDER BY date_added DESC ");
        $num_rows = mysql_num_rows($sql);
      ...

?>

。它们不再被维护。请参阅?改为了解,然后使用或-将帮助您决定使用哪一种。如果您选择PDO,。哦…谢谢。我对不推荐使用的东西感到厌烦。PHP/mySQL中排序列表的新方法是什么?@user1570409没有排序列表的新方法。这只是您的第二个查询(实际使用的一个)没有
ORDER BY
子句。有关弃用的注释与您正在使用已弃用的
mysql*
函数有关。建议使用mysqli、PDO或其他支持预处理语句的现代数据库库。删除顶部的,将顺序添加到底部的。这样可以正常工作直到他们停止支持浏览器,我想:)是的,这是有效的。我猜如果你看你的代码足够长的时间,你就找不到明显的一行代码,它什么也没做!
<?php 

     $dynamicList = "";
     $sql = mysql_query("SELECT * FROM products ORDER BY date_added DESC LIMIT 5");
     $productCount = mysql_num_rows($sql); // count the output amount

     if(isset($_GET['category'])) {
        $category = $_GET['category'];
                 $sql = mysql_query("SELECT * FROM products WHERE category = '$category' ORDER BY date_added DESC ");
        $num_rows = mysql_num_rows($sql);
      ...

?>