从MySQL db中提取的初始产品类别

时间:2016-03-30 14:24:26

标签: php mysql sorting

我有两个非常相似但不同的网站,每个网站都在列表页面上展示产品。从那里,您可以选择一个项目并查看详细信息,就像常规的电子商务网站一样。我希望默认排序是按字母顺序排列的。我知道我的问题是由于php产品列表模板页面上的代码问题,错误的网站没有正确地从db中对产品进行排序。我不是100%确定如何更改有问题的网站以默认按字母顺序排序/显示产品。 这是来自模板页面的代码,它从db加载项目 - 这是正确运行的代码(默认情况下按字母排序,没有指定其他排序

  // Load product from database
  $products = $db->rawQuery("SELECT {$productsCols},
                                {$productsImagesCols},
                                {$productsTypesCols}
                         FROM `products`
                         LEFT JOIN `products_images` ON     `products_images`.`id` = (SELECT `products_images`.`id`
                                                                              FROM `products_images`
                                                                              WHERE `products_images`.`pid` = `products`.`id`
                                                                            AND `products_images`.`featured` = ?
                                                                           LIMIT 1)
                         LEFT JOIN `types` ON `products`.`tid` = `types`.`id`
                         WHERE `products`.`status` LIKE ?
                         ORDER BY `products`.`name` ASC", array('true', 'enabled'));

以下是产品详情模板中的代码,默认情况下不按字母顺序排序

// Load product from database
 $products = $db->rawQuery("SELECT {$productsCols},
                                {$productsImagesCols},
                                {$productsTypesCols}
                         FROM `products`
                         LEFT JOIN `products_images` ON    `products_images`.`id` = (SELECT `products_images`.`id`
                                                                              FROM `products_images`
                                                                           WHERE `products_images`.`pid` = `products`.`id`
                                                                              AND `products_images`.`featured` = ?
                                                                           LIMIT 1)
                         LEFT JOIN `types` ON `products`.`tid` = `types`.`id`
                         WHERE `products`.`status` LIKE ?
                         ORDER BY " . $sort_field . " ASC", array('true', 'enabled'));
  $products = (count($products) > 0) ? $products : false ;

我几乎可以肯定我的问题是由于这一行:

ORDER BY " . $sort_field . " ASC", array('true', 'enabled'));

如果有人对如何更改此问题代码或任何其他代码有任何意见,请告诉我们!

仅供参考此变量 - $ sort_field =' productssort_position&#39 ;; - 在数据库中sort_position是完全相同的(0)所以这不是问题,因为我采取的第一步是更改为零。

谢谢!

0 个答案:

没有答案