Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax/PHP下拉菜单中的MySQL排序顺序问题_Php_Mysql_Ajax - Fatal编程技术网

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

Ajax/PHP下拉菜单中的MySQL排序顺序问题,php,mysql,ajax,Php,Mysql,Ajax,希望有人能帮我解决MySQL/PHP排序顺序问题 我正在做的工作的简要概述如下: 我有三个链接的选择框。第一个框的输出是固定的,它包含我的商店中的所有顶级类别。根据在上一个框中所做的选择,将填充后面的两个框。。。我听你说,标准,直截了当的东西 这一切都很好,最后一个框中的选择字符串被附加到搜索结果页面——这正是我所需要的。但是,当我试图组织第二个和第三个箱子的排序顺序时,我的问题来了 以下是我的代码示例: public function ShowType() {

希望有人能帮我解决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>
在上一个框中进行选择后

我的问题是,框激活后显示的数组不是按字母顺序排列的。我想在选择框中按类别和名称对输出进行排序,但不管我在MySQL查询中尝试了什么,它都不会有

我的动态标记的输出是否因为Ajax的更新方式而未排序?我需要用PHP对数组重新排序吗?如果需要,有人能告诉我一个初学者的级别吗?我不愿意称自己为中级!关于如何去做的教程,请

我希望我不要再像上次那样引起争论了-

干杯


Andy.

在SQL查询中,您有:

按类别和名称排序

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

"$行['categories_id'].'

您正在显示类别\u id,但按类别\u名称排序,因此结果下拉列表不会显示给用户进行排序

使用它: 按类别排序\u id

尝试以下查询: 选择categories.*,categories\u description.categories\u name FROM categories,categories\u description其中categories.categories\u id=categories\u description.categories\u id和categories.parent\u id='$\u POST[categories]'按类别排序\u name


选择categories.*,categories\u description.categories\u name FROM categories,categories\u description其中categories.categories\u id=categories\u description.categories\u id和categories.parent\u id='.$\u POST[category].'按类别排序\u name

。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,你的哪一部分不会引领你走向成功?你在查询数据库时会对值进行排序。谢谢你的链接,Hakre。我将介绍如何替换mysql_*函数。我尝试在MySQL查询中对值进行排序,我尝试了许多不同的按值排序,但似乎没有任何结果!但我也会去看你第二篇文章中的链接,它被称为按顺序而不是按排序。检查mysql\u查询是否返回FALSE,即错误。然后用mysql\u error显示错误。也请看对不起,这只是我在回答中使用了错误的术语。在我的代码中,我使用了orderby。但是指出像那样的小错误有助于将来记忆中的东西!如果我从现在开始在代码中键入SORT BY,我会记住这篇文章谢谢你的评论,米奇斯。之前我已经看过了,在问我的问题之前,我已经交换了你提到的两个值,但是这并没有改变下拉列表的结果。您是在建议$row['xxxxx uXXXXX']中的一个条目是多余的,还是我应该在其中一个条目中添加另一个值?谢谢您的建议,Akhilesh,但这没有任何效果。。。即使是这样,我还是希望结果按字母顺序排列,ID不是按字母顺序排列的,而是按创建顺序排列的!实际上,无论我如何尝试在查询中对列表排序,这都是项目的显示顺序!我试过按类别排序\u id按类别排序\u名称按类别排序\u说明。类别\u名称,以及其他一切!填充下拉菜单时,不会改变其顺序!我想我必须更改数据库中的类别ID。