こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データを昇順に並べるには

$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku where";
と書いてDBから正常にデータが取得できています。これを
(1)$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku order by kakaku";
(2)$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku order by kakaku asc";
(3)$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku
[where where_definition]
order by kakaku";(このやり方はPHPプロというサイトで教えてもらいました)
これら三つどれを書いてもエラーになります。どうしたら良いでしょうか??

投稿日時 - 2011-10-08 14:15:00

QNo.7058818

すぐに回答ほしいです

質問者が選んだベストアンサー

SQLでselect文を書くときは、

select フィールド名 from テーブル名

が基本になります。
でも、質問者さんが掲載したものはその後に「where」がついていますよね?
こういうときは、

select フィールド名 from テーブル名 where 検索条件

という書式になります。
なので、最初に示された

> $query = "select id,name,jyusyo,kakaku,gazou,link from kensaku where";

は、その後で検索条件を追加しているはずなんです。

この検索条件がなんなのかは、回答者側には判りません。(当然ですよね?)

#2、3、4さんは、このことを言っています。

本来は、検索条件の「後」に並べ替えの「order by」句がきます。

でも今のまま書き換えても、書き換えた後に「検索条件」が追加されているはずなので、

select フィールド名 from テーブル名 order by ソート条件 検索条件

になるので、エラーになっているんでしょう。

検索条件を追加している場所を探して、その後で並べ替えを追加しないと書式がばらばらになって居るんですよ。

投稿日時 - 2011-10-08 18:27:41

補足

どのように追加したら良いですか?
select * from kensaku where

検索条件

ソート文

このソート文はどのような記述をしたら良いですか?

投稿日時 - 2011-10-08 18:47:26

お礼

ありがとう。

投稿日時 - 2011-10-09 11:59:58

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

#5です。

少しはSQL文について「自分」で調べた方が良いですよ?

今回の場合は、前の補足で自分が書いているとおり

「order by kakaku」

が、ソート条件でしょ?

これを、

「~where」

の後で、検索条件を追加している後に追加するだけです。

「どこで、検索条件を追加しているか」は、質問者さんしか判りません。

自分で探しましょう。

投稿日時 - 2011-10-08 18:57:37

補足

条件文の最後にオーダーバイつけたら良いのですね?

投稿日時 - 2011-10-08 19:34:14

ここまで話がかみ合わないと、回答不能です。
SQLの基礎をしっかり学んで欲しい。

投稿日時 - 2011-10-08 16:50:26

補足

投稿日時 - 2011-10-08 17:03:26

どんなのですかと言われても、DBの中身を知らない私に答えることはできません。どんな条件でデータを取り出したいのか分かりませんから。
あなたが、欲しいと思うような解答がなかなかつかないのも、こうした理由だからではありませんか?

投稿日時 - 2011-10-08 16:30:46

補足

いや、質問内容にkakaku ascと書いてあるから、kakakuを昇順にしたいと解ると思いますが。

投稿日時 - 2011-10-08 16:43:37

SELECT fields FROM table Where 式 order by fields [ASC|DESC]

投稿日時 - 2011-10-08 16:20:31

補足

whereの後の式とはなんですか?

投稿日時 - 2011-10-08 16:25:17

ANo.1

>$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku where";
>と書いてDBから正常にデータが取得できています。
ということは
$query = "select id,name,jyusyo,kakaku,gazou,link from kensaku where";
の後に検索の条件があります。
$query = $query + "id = 1" '(文字列を連結するのは + でいいのかな?)
とかで検索の条件をいれないとDBから正常にデータが取得できません。
そして、order by ・・・
は、この検索の条件の後ろに記述します。

ということで、検索の条件をDBに渡しているところをさがしてください。
その次にorder by・・・を記述するとうまくいきます。

投稿日時 - 2011-10-08 15:43:40

補足

う~ん、よければ例文願います(*^_^*)

投稿日時 - 2011-10-08 16:06:43