0

誰かがMySQL/PHPのソート順の問題で私を助けてくれることを願っています。

私がしていることの簡単な概要は次のとおりです。

私は3つの(連鎖した)選択ボックスを持っています。最初のボックスの出力は「固定」です(ストアのすべてのトップレベルのカテゴリが含まれています)。後続の2つのボックスは、前のボックスでの選択に応じて入力されます...標準の単純なものです。

それはすべてうまく機能し、最後のボックスからの選択(文字列)が「検索結果」ページに追加されます-まさに私が必要としているものです。私の問題は、2番目と3番目のボックスの並べ替え順序を整理しようとしたときに発生します。

これが私のコードのサンプルです:

        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

使用する:ORDER BYcategories_id

于 2012-10-29T06:33:47.370 に答える
0

次のクエリを試してください。

また

"SELECT カテゴリ.*、categories_description.categories_name FROM カテゴリ、categories_description WHERE カテゴリ.カテゴリ ID = カテゴリ説明.カテゴリ ID AND カテゴリ.親 ID = '".$_POST[カテゴリ]."' カテゴリ名で並べ替え"

于 2012-10-29T12:33:56.403 に答える