ブラウザで条件を指定して、その条件に合うデータだけを、SQLiteで取得して、表示する方法。
いくつかの以前書いた記事を組み合わせれば、完成です。
html
<select id=”color“>
<option value=”red”>赤</option>
<option value=”orange”>オレンジ</option>
</select>
<select id=”image“>
<option value=”beautiful”>きれい</option>
<option value=”pretty”>かわいい</option>
<option value=”cool”>かっこいい</option>
</select>
次に、javascript
js
var params ={
“color” : $(“#color“).val(),
“image” : $(“#image“).val()
};
$.getJSON(“hoge.php”, params ,function(json){
alert(json);
});
次にphp
<?php
$params = array(
‘color‘ => $_GET['color'],
‘image‘ => $_GET['image']
);
$dbs = “hoge.db”; //接続先
$user = “”;
$pass = “”;
$dbh = new PDO($dbs,$user,$pass);//DBへの接続
$sql = <<< SQL
SELECT *
FROM site
WHERE color=’$params[color]‘ and image=’$params[image]‘
SQL;
$stmt = $dbh->query($sql);//SQLの実行
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);//データの取得(意味は考えず丸暗記する。)
//結果をJSON形式で出力
print(json_encode($result));
?>
まずは、htmlのselectタグの中の、valueの値を、javascript(jQuery使用)で取得し、配列paramsに連想配列で格納します。で、そのパラメータをphpにGETで送ります。
次にphpは、送られてきたGETのデータで、パラメータを作ります。
この辺は、http://blog.jokerstyle.org/archives/10を参考。
次に、SQLiteに接続する時に、WHEREで、値を指定する。
この辺は、http://blog.jokerstyle.org/archives/145を参考。
取得したデータを、json_encodeしてprintすればOK。
この取得したデータは、元をたどれば、htmlのselectタグの中の、optionのvalueの値が条件となったデータになる。
うーん、文章にすると表現が難しい。後で読んだ時、解るかな?