電子書籍の厳選無料作品が豊富!

現在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://oshiete.goo.ne.jp/qa/6490368.html
ここで質問したときに頂いたコードを基に、自分なりにPHPの機能の拡張を練習していました。

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

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

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

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

A 回答 (2件)

$query = "select * from animal ";


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

ただし、ページの処理はしてませんので、最後の limit句のあたりは 適宜 変更してください。( ̄(エ) ̄)
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/05 21:54

ステップに分けて考える必要があります。


(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文を書きます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/05 21:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!