【发布时间】:2020-11-02 22:27:35
【问题描述】:
我正在尝试根据用户拥有的成分搜索甜点数据库。通过在我的查询中使用“和”,即使用户检查了所有可用的成分,它也不会从数据库中输出任何甜点(因为没有甜点使用所有成分)。对于甜点没有的成分列,数据库表为空。如何调整我的代码以显示所有仅使用用户输入的成分的甜点?
<!DOCTYPE html>
<head></head>
<body>
<h1> Immediate Ingredients </h1>
<form>
Eggs <input type="checkbox" name="eggs" value="yes">
Chocolate Chips <input type="checkbox" name="cchip" value="yes">
Butter <input type="checkbox" name="butter" value="yes">
Sugar <input type="checkbox" name="sugar" value="yes">
Flour <input type="checkbox" name="flour" value="yes">
Vanilla <input type="checkbox" name="vanilla" value="yes">
Heavy Cream <input type="checkbox" name="hc" value="yes">
Baking Powder <input type="checkbox" name="bpowder" value="yes">
Peanut Butter <input type="checkbox" name="pbutter" value="yes">
Powdered Sugar<input type="checkbox" name="psugar" value="yes">
Fruit <input type="checkbox" name="fruit" value="yes">
<input type="submit">
</form>
<?php
$eggs=$_GET['eggs'];
$cchip=$_GET['cchip'];
$butter=$_GET['butter'];
$sugar=$_GET['sugar'];
$flour=$_GET['flour'];
$vanilla=$_GET['vanilla'];
$hc=$_GET['hc'];
$bpowder=$_GET['bpowder'];
$pbutter=$_GET['pbutter'];
$psugar=$_GET['psugar'];
$fruit=$_GET['fruit'];
$database = new PDO('sqlite:ingredients.db');
$result = $database->query("SELECT * FROM ingredients_data WHERE eggs='{$eggs}' AND cchip='{$cchip}' AND butter='{$butter}' AND sugar='{$sugar}' AND flour='{$flour}' AND vanilla='{$vanilla}' AND hc='{$hc}' AND bpowder='{$bpowder}' AND pbutter='{$pbutter}' AND psugar={$psugar}' AND fruit='{$fruit}'");
$data = $result->fetchAll (PDO::FETCH_ASSOC);
foreach($data as $row_index => $ingredients){
$row_number = $row_index + 1;
echo "<h1> {$row_number}</h1>";
echo "<h2> {$ingredients['dname']} </h2>";
}
?>
</body>
【问题讨论】:
-
这可能有助于 NULL 值部分。 stackoverflow.com/questions/14067215/…
-
这些很有帮助!谢谢大家!
标签: jquery sqlite input checkbox