- 締切済み
チェックボックスを用い、MySQLからデータを取得
プログラミング初心者です。HTML, JavaScript, PHPを使用し、checkboxにチェックを入れ検索ボタンを押すと、MySQLからデータを取得し表示させる機能の実装を試みています。複数の項目を選択して検索したいため、checkboxで行いたいと考えています。 MySQLはitemsテーブルにurl, length, timeフィールドを用意し、text型でデータをセットしています。 誤っている箇所をご指摘頂ければ助かります。 よろしくお願いいたします。 *HTML <div id ="length" > <input name="length[]" type="checkbox" value="short"> <input name="length[]" type="checkbox" value="long"> </div> <div id ="time" > <input name="time[]" type="checkbox" value="morning"> <input name="time[]" type="checkbox" value="noon"> <input name="time[]" type="checkbox" value="evening"> <input name="time[]" type="checkbox" value="weekday"> <input name="time[]" type="checkbox" value="holiday"> </div> <input type="button" name="search" value="検索"/> <div id="outputArea">検索ボタンを押すと、ここにMySQLから取得したデータが表示される</div> *JavaScript $(function(){ $("#search").click(function(){ var aaa = $('div#length > input[name=***]:checked'); var bbb = $('div#time > input[name=***]:checked'); var inaaa=[]; aaa.each(function(){ inaaa.push(this.value); }) var inbbb=[]; bbb.each(function(){ inbbb.push(this.value); }] $.post("output_do.php",inaaa,show); $.post("output_do.php",inbbb,show); }); }); function show(out){ var outdata = out.split(" ") //表示させるデータ数はとりあえず3つほどを考えています $("#outputArea").text(outdata[0]); $("#outputArea").text(outdata[1]); $("#outputArea").text(outdata[2]); } *PHP mysql_connect('localhost','root','root') or die(mysql_error()); mysql_select_db('db'); mysql_query('SET NAMES UTF8'); $inaaa= $_POST["inaaa"]; $inbbb= $_POST["inbbb"]; if( isset($inaaa) ){ } else{ print '$inaaaは定義されていません'; } if( isset($inbbb) ){ } else{ print '$inbbbは定義されていません'; } $res = mysql_query("SELECT url FROM items WHERE length = '" . $inaaa."' or time = '" . $inbbb."' LIMIT 0,10", mysql_real_escape_string($inaaa), mysql_real_escape_string($inbbb), ); //この部分が特に不安です if ($res !== FALSE) { $out = ""; while ($row = mysql_fetch_array($res)) { $out .= $row['url']."<i>"; } echo $out; }else{ echo "データがありません"; } 以上です。長々と申し訳ありませんm(__)m
- みんなの回答 (2)
- 専門家の回答