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

解決済みの質問

PHPでmySQLのデータベースを操作し出力したい

現在PHPでmySQLのデータを操作し、出力を行うプログラムの勉強をしています。

データベース名:animal、テーブル名:pet、フィールド名が順にID:title:category:url:scoreで
1:ねこ:cat:neko.com:43
2:いぬ:dog:空白:24
3:ねこ:cat:nyan.com:53
4:空白:dog:空白:空白
5:とり:bird:bird.com:62
6:ねこ:cat:cat.com:81

という感じのデータがあります。
このとき、categoryが"cat"のものだけをscoreの大きい順に1ページに10件ずつhtmlに列挙したいです。
しかし、SQLのデータから条件にマッチする方法のみを抜き出す、条件に従ってデータを並べるphpの書き方がわかりません。

http://okwave.jp/qa/q6490368.html
ここで質問したときに頂いたコードを基に、自分なりにPHPの機能の拡張を練習していました。

これができると、指定した複数の条件でデータをソートするという、基本的なデータベースと連携を取るPHPが作成できるのでぜひとも習得したいです。
また、ページングの機能と合わせることで、PHPとデータベースを使って行う半分以上の処理ができるようになるはずです。

手元のPHPの参考書には、SQLにアクセスして、中に書いてあるデータを抜き出す方法は書かれているのですが、具体的にSQLを条件付きで抽出する方法が書かれていません。

自分で調べつつ、ネット上のコードを基にここ3日がんばったのですが、どうにも一人ではうまくいきませんでした。

どなたかこのような動作を行う、PHPコードの模範回答を教えてはいただけないでしょうか。
どうかご教示ください。よろしくお願いします。

投稿日時 - 2011-02-05 02:30:24

QNo.6498812

困ってます

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

$query = "select * from animal ";
$query.= "where category='cat' "; // categoryが"cat"のものだけを
$query.= "order by score DESC "; // scoreの大きい順に
$query.= "limit 10 "; // 1ページに10件

ただし、ページの処理はしてませんので、最後の limit句のあたりは 適宜 変更してください。( ̄(エ) ̄)

投稿日時 - 2011-02-05 04:07:48

お礼

なるほどです。ありがとうございます。
これを利用して組み立ててみます。

投稿日時 - 2011-02-05 21:54:49

ANo.1

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

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

回答(2)

ANo.2

ステップに分けて考える必要があります。
(1) MySQLのテーブルからデータを取り出してPHPの変数に格納する。
(2) 変数に格納された情報を10件ずつHTML化する。・・・・・PHPプログラムの書き方の話

(1) をさらに分けると、
(1-1) MySQLでどういう処理をするかのSQL文の記述をする。・・・・・MySQL命令の書き方の話
(1-2) SQL文をMySQLに与えて処理の結果を受けとる。・・・・・PHPプログラムの書き方の話

(1-1) はPHPの話ではなくMySQLの話なのでMySQLのマニュアルや解説を調べる必要があります。PHPの解説書では、(1-2)のやり方が書いてある訳なので、そこにあるSQLはあくまでサンプル的なものです。実際には、PHPだけでなくMySQLを勉強してSQLの書き方を学ぶ必要があります。PHPの参考書だけでは駄目です。

具体的にはNo1の方の回答のようなSQL文を書きます。

投稿日時 - 2011-02-05 09:03:49

お礼

ご回答ありがとうございます。
1-2のやり方は分かっているのですが、1-1のやり方がわからなかったので質問させていただいた次第です。

投稿日時 - 2011-02-05 21:56:07

あなたにオススメの質問