checkboxで複数選択して,OR検索を行うことができなくて困っています.
HTML,PHPとMYSQLを用いて
企業の求人情報を検索するフォームを作成しています.
HTMLの入力フォームは
・キーワード入力(企業名)
・プルダウンから選択(業種選択)
・チェックボックスで複数選択(職種選択)
の構成です.
検索を行う際は{企業名 AND 業種 AND (職種[1]OR[2]・・・)}というように職種の部分のみOR検索という構成で考えています.
しかし,職種を複数選択して検索を行うことが出来なくて非常に困っています.
以下が現在作成中のコードです.
HTMLはチェックボックスの部分のみ貼りますね
serch_form.html
<form action="library_search.php" method="post">
<input type="checkbox" name="box[]" value="プログラマー">プログラマー
<input type="checkbox" name="box[]" value="システムエンジニア">システムエンジニア
<br>
<input type="checkbox" name="box[]" value="ネットワークエンジニア">ネットワークエンジニア
<input type="checkbox" name="box[]" value="その他情報系">その他情報系
library_search.php
<html>
<head><title>検索結果</title></head>
<meta http-equiv="Content-Type" content="text/html charset=EUC-JP">
<body>
<?php
//POST表示用
print_r($_POST);
$where = array();
$host = "localhost";
if (!$conn = mysql_connect($host, "usr", "passwd")){
die("データベース接続エラー.<br />");
}
mysql_select_db("db", $conn);
$condition = "";
if(isset($_POST["title"]) && ($_POST["title"] != "")){
$title = mysql_escape_string( $_POST["title"]);
$title = str_replace("%", "\%", $title);
if ($condition == ""){
$condition = "WHERE cname LIKE \"%".$title."%\"";
} else{
$condition .= "AND cname LIKE \"%".$title."%\"";
}
}
if(isset($_POST["pdown"]) && ($_POST["pdown"] != "")){
$pdown = mysql_escape_string( $_POST["pdown"]);
$pdown = str_replace("%", "\%", $pdown);
if ($condition == ""){
$condition = "WHERE gyousyu LIKE \"%".$pdown."%\"";
} else{
$condition .= "OR gyousyu LIKE \"%".$pdown."%\"";
}
}
if(isset($_POST["box"]) && ($_POST["box"] != "")){
//foreach($_POST["box"] as $val){
$where = mysql_escape_string( $_POST["box"]);
$where = str_replace("%", "\%", $where);
//}
if ($condition == ""){
$condition = "WHERE job LIKE \"%".$where."%\"";
} else{
//$where = inplode(' or ' ,$where);
$condition .= "AND job LIKE \"%".$where."%\"";
}
}
$sql = "SELECT * FROM job_table ".$condition." ORDER BY id LIMIT 50";
$res = mysql_query($sql, $conn);
print("<table border=\"1\">");
print("<tr><td>企業名</td><td>業種</td><td>募集職種</td></tr>");
while($row = mysql_fetch_array($res)) {
print("<tr>");
print("<td>".$row["cname"]."</td>");
print("<td>".$row["gyousyu"]."</td>");
print("<td>".$row["job"]."</td>");
print("</tr>");
}
print("</table>");
mysql_free_result($res);
?>
</body>
</html>
特にforeach文を使って,POSTに格納されたjob[]を分解して格納する方法がわかりません.
PHP初心者で汚いコードですが,どうかお願い致します.