我有一个多选形式:
<form name="form" action="result2.php" method="post">
<label>Type of Resource</label>
<select name="resources[]" multiple>
<option>Charitable Organization</option>
<option>Women-Only Shelter</option>
<option>Men-Only Shelter</option>
<option>Family Shelter</option>
<option>Youth Shelter</option>
<option>Emergency Shelter</option>
</select>
<input type="submit" value="Submit">
</form>
用户将能够选择多个选项,并且将显示每个所选类别下数据库中的所有掩体。这是我的PHP代码:
$value_4 = $_POST["resources"];
if($value_4){
foreach ($value_4 as $v){
$result = mysqli_query($dbc, "SELECT DISTINCT shelter_name, type_name
FROM shelter s
INNER JOIN shelter_type st on s.shelter_id = st.shelter_id
INNER JOIN s_type stt on st.type_id = stt.type_id
WHERE type_name = '$v'");
}
}
echo"<table border='1'>";
echo"<tr><td>Shelter</td><td>Type</td></tr>";
while ($row = mysqli_fetch_assoc($result)){
echo"<tr><td>{$row['shelter_name']}</td><td>{$row['type_name']}</td></tr>";}
echo"</table>";
目前,我只能显示最后选择的选项。如何更改我的PHP代码,以显示每个所选选项下的所有数据?感谢。
答案 0 :(得分:0)
就像@Alex Howansky提到的那样,我在每次循环迭代时都覆盖了我的$ result。我简单地移动了我的代码的第二部分,它打印出我的foreach循环中的避难所,它的工作原理!