Php 选中复选框时如何显示数据库中的特定数据

Php 选中复选框时如何显示数据库中的特定数据,php,checkbox,Php,Checkbox,我有一个网站,目前显示的数据从我的数据库。我也有一些复选框。现在,我希望在用户选中这些复选框时,它只显示与这些复选框对应的行。这就是我到目前为止所做的: 复选框: <form> Actie<input type="checkbox" name="genre" value="actie"> Sport<input type="checkbox" name="genre" value="sport"> <input type="submit" name="f

我有一个网站,目前显示的数据从我的数据库。我也有一些复选框。现在,我希望在用户选中这些复选框时,它只显示与这些复选框对应的行。这就是我到目前为止所做的:

复选框:

<form>
Actie<input type="checkbox" name="genre" value="actie">
Sport<input type="checkbox" name="genre" value="sport">
<input type="submit" name="formSubmit" value="Submit">
</form>

活动
运动
如何显示数据库中的内容:

$con->set_charset("utf8"); 
$result = mysqli_query($con,"SELECT Product,Prijs,Beschrijving FROM Producten order by     Product ASC LIMIT 0, 5"); 
echo '<table border="1px solid black" cellspacing="0" style="margin-top:47px"><tbody>'; 
while($row = mysqli_fetch_array($result)) 
{  
echo "<tr>"; 
echo "<td rowspan='2' width= '200'>" . $row['Product'] . "</td>"; 
echo "<td><b>" . $row['Product'] . "</b></td>"; 
echo "</tr>"; 
echo "<tr>"; 
echo "<td>" . $row['Beschrijving'] . "&nbsp;<i>Prijs: &euro;&nbsp;" . $row['Prijs'] . "    </i><br/><br/></td>"; 
echo "</tr>"; 

}
$con->set\u字符集(“utf8”);
$result=mysqli_query($con,“按产品ASC限制0,5从产品订单中选择产品、Prijs、Beschrijing”);
回声';
while($row=mysqli\u fetch\u数组($result))
{  
回声“;
回显“$行[“产品]”;
回显“$行[“产品]”;
回声“;
回声“;
回显“$row['Beschrijving']”Prijs:&euro;“$row['Prijs']”。

”; 回声“; }

我知道我可以使用WHERE只显示我想要的数据,我只是不知道只有在选中复选框时才能这样做。

您可以检查流派是否有值或是否已设置

if ($_POST['genre'] != "")
{
  ...
}


你需要这样的东西:

$sql = "SELECT Product,Prijs,Beschrijving FROM Producten";
if(isset($_POST['genre'])){
    $sql .= " WHERE Producten.`genre` IN (";
    $genres = implode(',', $POST['genre']);
    $genres = "'" . str_replace(",", "','", $genres) . "'";
    $sql .= $genres;
    $sql .= ")";
}

$sql .= " order by Product ASC LIMIT 0, 5";
$result = mysqli_query($con, $sql);
第二,你需要替换

Actie<input type="checkbox" name="genre" value="actie">
Sport<input type="checkbox" name="genre" value="sport">
Actie
运动

Actie
运动
试试这个:

 if($_POST['genre']!=""){
$query="SELECT Product,Prijs,Beschrijving FROM Producten order by WHERE genre=".$_POST['genre']."    Product ASC LIMIT 0,5";
 }
 else{
 $query="SELECT Product,Prijs,Beschrijving FROM Producten order by Product ASC LIMIT 0,5";
}
$con->set_charset("utf8"); 
$result = mysqli_query($con,$query); 
echo '<table border="1px solid black" cellspacing="0" style="margin-top:47px"><tbody>'; 
 while($row = mysqli_fetch_array($result)) 
 {  
 echo "<tr>"; 
echo "<td rowspan='2' width= '200'>" . $row['Product'] . "</td>"; 
echo "<td><b>" . $row['Product'] . "</b></td>"; 
echo "</tr>"; 
echo "<tr>"; 
echo "<td>" . $row['Beschrijving'] . "&nbsp;<i>Prijs: &euro;&nbsp;" . $row['Prijs']."</i><br/><br/></td>"; 
 echo "</tr>"; 

}
if($\u POST['genre']!=“”){
$query=“选择产品、Prijs、Beschrijving FROM Producten order by WHERE genre=“.$\u POST['genre']”。“产品ASC限制0,5”;
}
否则{
$query=“按产品ASC限额0,5从Producten订单中选择产品、Prijs、Beschrijing”;
}
$con->set_字符集(“utf8”);
$result=mysqli\u查询($con,$query);
回声';
while($row=mysqli\u fetch\u数组($result))
{  
回声“;
回显“$行[“产品]”;
回显“$行[“产品]”;
回声“;
回声“;
回显“$row['Beschrijving']”Prijs:&euro;“$row['Prijs']”。

”; 回声“; }
要对复选框值过滤的列是什么?复选框值位于名为GenreI的列中。当我不检查任何内容时,我得到:注意:第49行/var/www/games.php中未定义的索引:genre-->if($\u POST['genre']!=”){当我选中一个复选框时,我得到:注意:第50行/var/www/games.php中的数组到字符串转换-->$query=“选择……我得到:警告:mysqli\u fetch\u数组()参数1应为mysqli_result,布尔值在第58--->行的/var/www/games.php中给出,而($row=mysqli_fetch_数组($result))
Actie<input type="checkbox" name="genre[]" value="actie">
Sport<input type="checkbox" name="genre[]" value="sport">
 if($_POST['genre']!=""){
$query="SELECT Product,Prijs,Beschrijving FROM Producten order by WHERE genre=".$_POST['genre']."    Product ASC LIMIT 0,5";
 }
 else{
 $query="SELECT Product,Prijs,Beschrijving FROM Producten order by Product ASC LIMIT 0,5";
}
$con->set_charset("utf8"); 
$result = mysqli_query($con,$query); 
echo '<table border="1px solid black" cellspacing="0" style="margin-top:47px"><tbody>'; 
 while($row = mysqli_fetch_array($result)) 
 {  
 echo "<tr>"; 
echo "<td rowspan='2' width= '200'>" . $row['Product'] . "</td>"; 
echo "<td><b>" . $row['Product'] . "</b></td>"; 
echo "</tr>"; 
echo "<tr>"; 
echo "<td>" . $row['Beschrijving'] . "&nbsp;<i>Prijs: &euro;&nbsp;" . $row['Prijs']."</i><br/><br/></td>"; 
 echo "</tr>"; 

}