Ajax / PHP下拉菜单中的MySQL排序顺序问题

时间:2012-10-28 01:13:42

标签: php mysql ajax

希望有人可以帮我解决MySQL / PHP排序问题。

我正在做的简要介绍如下:

我有三个(链式)选择框。第一个框的输出是“固定的”(它包含我商店中的所有顶级类别)。根据前一个框中的选择填充后面的两个框...标准的,直截了当的东西,我听你说!

一切都很好,最后一个框中的选择(字符串)被附加到“搜索结果”页面 - 正是我需要的。当我尝试组织第二个和第三个框的排序顺序时,我的问题出现了。

以下是我的代码示例:

        public function ShowType()
    {
        $sql = "SELECT categories.*, categories_description.categories_name FROM categories, categories_description WHERE categories.categories_id = categories_description.categories_id AND categories.parent_id = $_POST[category] ORDER BY categories_name";
        $res = mysql_query($sql,$this->conn);
        $type = '<option value="0">Select...</option>';
        while($row = mysql_fetch_array($res))
        {
        $type .= '<option value="' . $row['categories_name'] . '">' . $row['categories_id'] . '</option>';
        }
        return $type;
    }

Ajax取代了(灰色,不可点击)

<option value="0">Select...</option>

部分到

<option value="' . $row['categories_name'] . '">' . $row['categories_id'] . '</option>

一旦选择(在上一个框中)。

我的问题是,激活框后显示的数组不是按字母顺序排列的。我想通过categories_name对选择框中的输出进行排序,但无论我在MySQL查询中尝试什么,都不会有它!

由于Ajax更新的方式,我的“动态”标签的输出是否未排序?我是否需要使用PHP对数组进行重新排序,如果是这样,有人可以将我指向初学者的级别(我讨厌称自己为中级!)教程如何解决它?

我希望我不会像上次那样引发任何争论! : - )

干杯,

安迪。

3 个答案:

答案 0 :(得分:0)

在您的SQL查询中,您有:

ORDER BY categories_name

但是,在填充下拉列表的代码中,您有:

<option value="' . $row['categories_name'] . '">' . $row['categories_id'] . '</option>

您正在显示categories_id,但按categories_name排序,因此用户无法看到生成的下拉菜单。

答案 1 :(得分:0)

使用它: ORDER BY categories_id

答案 2 :(得分:0)

尝试以下查询: “SELECT categories。*,categories_description.categories_name FROM categories,categories_description WHERE categories.categories_id = categories_description.categories_id AND categories.parent_id ='$ _POST [category]'ORDER BY categories_name”

“SELECT categories。*,categories_description.categories_name FROM categories,categories_description WHERE categories.categories_id = categories_description.categories_id AND categories.parent_id ='”。$ _ POST [category]。“'ORDER BY categories_name”