如何使用具有排序功能的菜单创建产品列表


How to create a list of products with a menu that has sort function?

我想创建一个产品列表,并通过在菜单上选择不同的过滤器选项对它们进行排序,就像这里的一样:http://www.newegg.com/Store/SubCategory.aspx?SubCategory=124&IsSingle=1&Category=24&name=Network-Storage-NAS

用php和javascript编程有多难?

讨论如何设计这样一个系统可能有点复杂,但这很容易完成ORDER BY在PHP和MySQL:

$order = $_GET['order'];
if ($order)
{
    switch ($order)
    {
        case 'p':
            $order = 'price';
            break;
        case 'n':
            $order = 'name';
            break;
        case 'r':
            $order = 'rating';
            break;
        default:
            $order = 'price';
            break;
    }
}
$Sql = "SELECT product_name, price, rating FROM products ORDER BY $order ASC";
// do your SQL stuff here

在HTML和Javascript中,你可以这样做:

<select name="filter" onchange="window.location.href='filter.php?order='+this.value">
    <option value="p">Price</option>
    <option value="n">Name</option>
    <option value="r">Rating</option>
</select>

这只是一个想法,但这可以改进成更好的方法。

如果你谈论new egg和大多数其他网站的排序功能,如果你知道SQL和PHP,这很容易。产品数据存储在数据库中,当排序菜单发生更改时,将进行表单提交或ajax调用。该值通常也存储在会话中,以便在以后的页面中使用,作为客户浏览结果的页面。排序顺序用于设置从数据库检索数据的SQL查询中的order BY子句。