プログラミング初心者です。HTML, JavaScript, PHPを使用し、checkboxにチェックを入れ検索ボタンを押すと、MySQLからデータを取得し表示させる機能の実装を試みています。書き方を教えて頂ければ助かります。

抜粋して書かせて頂きます。

*HTML
<input id="length" name="length[]" type="checkbox" value="short">
<input id="length" name="length[]" type="checkbox" value="long">
<input type="submit" id="search" value="検索" />
<div id="outputArea">ここにMySQLから取得したデータを表示させたい</div>

*JavaScript(jQuery1.6使用)
$(function(){
$("#search").click(function(){
var length = $("[name='length[]']:checked");
var test=[];
length.each(function(){
test.push(this.value);
})
$("#outputArea").load("aaa.php",{test:test});
});
});

*PHP(名前はaaa.phpです。SQLへの接続確認等は大丈夫です。)
$test= $_POST["test"];
$rows = mysql_query("SELECT 取得したいデータ FROM items WHERE length = '" . $test."' ");
ーーPHPのこれ以下の記述がよく分かりませんーー

いろいろ書いてみましたが、うまく動作してくれません。
よろしくお願いしますm(__)m

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/10/01 01:45:03

回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

以下、参考まで

<?php
// 検索結果があまりにも多いと処理が無駄に重くなるのでリミットをつけておくのがいい
// ここでは0から20レコードと固定化した
// ページング機能をつけたいという要望が出た際(出るだろうけど、まずは動かすことが先決)は
// 現在表示されているページ番号などをjavascript側とやりとりするようにして、LIMITを調節したりする
// mysql_queryは行を返すのではなくリソースを返すので、ここでは$rowsではなく$resとした
$test= $_POST["test"];
$res = mysql_query("SELECT 商品名, 単価, 在庫数 FROM items WHERE length = '" . $test."' LIMIT 0, 20");
if ($res !== FALSE) {
    // mysql_queryが一応は正常に機能した場合の処理
    while ($row = mysql_fetch_array($res)) {
        echo $row['商品名'];
        echo $row['単価'];
        echo ($row['在庫数'] > 0 ? '在庫あり' : '在庫なし');
        echo '<br />';
    }
} else {
    // mysql_query が正常終了しなかった場合の処理
    // ここではMySQLからのエラーメッセージだけとしている
    echo mysql_error();
}

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません