1
私は2つのpopulated selectmenuを使用してSQLデータベースにクエリを行いました。すべての選択メニューの最初のオプションタグはvalue = ""です。すべての2つの選択メニューのオプションを選択すると、すべて正常に動作します。しかし、1つ以上のオプションを選択しないと、クエリは機能しません。
選択メニューののワン:あなたはそのためのチェックを追加することができます
<select name="titel" id="titel" value="">
<option value="">Selecteer</option>
<?php
if($rowCount > 0){
while($row = $query->fetch_assoc()){
echo '<option value="'.$row['titel'].'">'.$row['titel'].'</option>';
}
}else{
echo '<option value="">Language not available</option>';
}
?>
</select>
2nd page (search.php):
<?php
//load database connection
$host = "localhost";
$user = "...";
$password = "...";
$database_name = "...";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
// Search from MySQL database table
$titel=$_POST['titel'];
$version=$_POST['version'];
$query = $pdo->prepare("SELECT DISTINCT * FROM Library where titel = ? AND version = ?");
$query->bindValue(1, $titel, PDO::PARAM_STR);
$query->bindValue(2, $version, PDO::PARAM_STR);
$query->execute();
残念ながら、それは動作しません。私はvalue = ""が問題なのか疑問に思います。多分それは空の値として解釈されませんが、引用符(文字列)として解釈されますか? – xcx
@xcx私は自分の答えを更新し、それを確認して何を得るのかを教えてください –
結果は私のデータベースのすべてのレコードを表示するので、else {...文が実行されます。しかし、それは私が必要とするものではありません。私が「タイトル」(「ハリー・ポッター」と言う)を選択し、バージョンを選択しないと、結果はすべてのハリー・ポッターの本でなければなりません。私のライブラリ全体ではありません。 – xcx