如何从多选表单中返回多个查询?

时间:2018-04-04 14:39:17

标签: php html sql database web-applications

我有一个多选形式:

<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代码,以显示每个所选选项下的所有数据?感谢。

1 个答案:

答案 0 :(得分:0)

就像@Alex Howansky提到的那样,我在每次循环迭代时都覆盖了我的$ result。我简单地移动了我的代码的第二部分,它打印出我的foreach循环中的避难所,它的工作原理!