0

希望有人可以帮助我解决 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 重新排序数组,如果是这样,有人可以将我指向初学者的水平(我不想称自己为中级!)关于如何去做的教程?

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

干杯,

安迪。

4

3 回答 3

0

在您的 SQL 查询中,您有:

ORDER BY categories_name

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

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

您正在显示categories_id但按 排序categories_name,因此用户不会看到结果下拉列表以进行排序。

于 2012-10-28T08:58:13.180 回答
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"

于 2012-10-29T12:33:56.403 回答
0

使用它:ORDER BY categories_id

于 2012-10-29T06:33:47.370 回答