
PHPを初めて3ヶ月ほどになります。ご教授お願いします。
PHP4.3.2:MySQL 4.1.18を使用しています。
買い物カゴシステムを作成しています。
詳細ページから気になる商品をランダムに買い物カゴへ入れていきます。
現在、買い物カゴの中身を確認すると、チェックした順に表示されます。
これを、商品名ごとに50音で並び替えをしたいのです。
$sql = "SELECT * FROM `M_ITEM` WHERE ITEM_CD = '$cookie[$i]' ORDER BY `ITEM_NAME` ASC";
上記を入れても、並び替えされません。
いろいろ調べて試しているのですが、かなりお手上げ状態になっています。
初歩のことかもしれないのですが、よろしくお願いしいたします。
他に必要な情報などいるようでしたら、教えていただけると助かります。
No.5ベストアンサー
- 回答日時:
PHPに詳しくないので、、SQL文の部分にのみお答えします。
WHERE句が "="で比較されているということは、一致したものを取ってきているだけなので、
選択された全項目をソート順にしたければ、
WHERE句の部分を
ITEM_CD = '~' ではなく
ITEM_CD IN ('~', '~', ..., '~') のように、しなくてはいけません。
$sqlwhere = "ITEM_CD IN(";
for ($i = 1; $i <= xx; $i++) {
if($i != 1){
$sqlwhere = $sqlwhere + ",";
}
$sqlwhere = $sqlwhere + "'" + $cookee[$i] + "'";
}
$sqlwhere = $sqlwhere + ")";
$sql = "SELECT * FROM 'M_ITEM' WHERE " + $sqlwhere + " ORDER BY 'ITEM_NAME' ASC";
こんな感じ?(PHPは詳しくないので文法はあやしげ(^-^;)
貴重なご意見ありがとうございます。
上記プログラムを試してみたのですが、全てのデータが表示されてしまいました…
やはりプログラム構造から見直しかと思います。
そのときは、上記プログラムを参考にさせていただきます。

No.4
- 回答日時:
バッククォートやシングルクォートの有無は無関係でしょう。
$sql = "SELECT * FROM `M_ITEM` WHERE ITEM_CD = '$cookie[$i]' ORDER BY `ITEM_NAME` ASC";
というSQLを見ると、while文やfor文でループして、アイテム数分だけSQLを実行しているように思えますが違いますか? もしそうならば、$cookieの並び順で結果が出力されてもおかしくないです。プログラムの構造を変更する必要があります。
貴重なご意見ありがとうございました。
バッククォートやシングルクォートの有無は無関係でしょう。
はい、関係ありませんでした…
まさしくループしています。プログラム構造から見直ししたいと思います。
No.3
- 回答日時:
変数の部分を実際の数値にしたらどうですか?
実際にMYSQLにコマンドを打ち込んで動作確認してみてはどうでしょう。変数の部分がおかしければレコードセットが0になるはず。
あと、PHPのアプリの一部をもっと乗せるといいかもしれません。
貴重なご意見ありがとうございます。
MYSQLにコマンドを打ち込んで動作確認してみてはどうでしょう。
ということなのですが…さすがに、そのやり方がわからず…
まだまだ勉強不足だということを痛感しております。
PHPのアプリの一部も…と思っているのですが、どこを乗せていいのかもかなり怪しいもので。
いろいろこちらを参考に勉強いたします。
No.2
- 回答日時:
$sql = "SELECT * FROM `M_ITEM` WHERE ITEM_CD = '$cookie[$i]' ORDER BY `ITEM_NAME` ASC";
PHPで変数に格納するときは''が必要なかったと思います。
なので、
$sql = "SELECT * FROM M_ITEM WHERE ITEM_CD = $cookie[$i] ORDER BY ITEM_NAME ASC";
ではどうでしょうか?
貴重なご意見ありがとうございます。
''をはずしてやってみたのですが、出来ませんでした…
他の部分との兼ね合いの問題かもしれません。
もう少しPHPを勉強しなければ、と気合入れ直しています。
「PHPで変数に格納するときは''が必要なかった」
ということを知らなかったので、参考になりました。
ありがとうございます。
No.1
- 回答日時:
M_ITEM と ITEM_NAME のシングルウォーテーションはいりますかね。
簡単なSQL文では動くのでしょうか?
この回答への補足
ご回答ありがとうございます。
シングルウォーテーションをはずしてもエラーは出ませんが、
表示の切替はされませんでした。
試しに、↓の部分を削除してみたら、並び替え出来ました。
WHERE ITEM_CD = '$cookie[$i]'
しかしデータベースに登録されているもの全てが並び替えされました。
簡単なSQL文に当てはまるか分からないのですが、
上記の2点を試してみました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- スーパー・コンビニ スーパーでの迷惑行為について 2 2022/08/21 17:02
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「名前(first name) 1 2023/06/24 13:03
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コードで渡したデータを降順に...
-
phpでmysqlを検索、計算
-
PHPよりMySQLの操作のコードの...
-
NASMアセンブラの特殊シンボル$...
-
MySQLの一部を、計算した後に表...
-
PHP+MySqlでの検索
-
PHP と Mysql の連携時に発生す...
-
構造を教えてください。
-
mySQLからデータを取り出す
-
SQL1回で、平均と合計を両方出...
-
Yomi-search(PHP)を設置する...
-
データの取得方法
-
テーブル<TR></TR>の処理について
-
"と'の使い方を教えていただけ...
-
mysqlに接続が出来ません
-
SQLで。
-
VBA初心者です。
-
予約システムを作りたい
-
MySQLからのデータを「Pager」...
-
集計表が作れない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
insert1つの処理でもトランザ...
-
<VB.NET>INSERT文でDBにデータ...
-
JAVA SQLServerException 列名 ...
-
Pro*Cの構文エラー
-
VBA ACCESS SQL...
-
PHP&MySQLでの文字列+数列の一...
-
【初歩】配列の格納データ数だ...
-
mysqliを使ってデータベースを...
-
配列で受け取った値がUPDATEで...
-
MySQLのINSERT時にたまに重複に...
-
一度検索されたものに対するソ...
-
cakePHPでSQLが実行できない。
-
PHP4とORACLE接続について
-
phpでforeach ($stmt as $row)...
-
phpmyadminにタグを格納するには
-
zendframework
-
データベースに存在するデータ...
-
データに「,」があると「"」で...
-
Q&Aサイトを作成していてURLの...
-
PHP+PDO+MYSQL で実行されたSQ...
おすすめ情報