从数据库显示表单选定的选项结果

时间:2016-05-03 16:49:39

标签: php mysql select filter dropdown

好的,我正在重新考虑整个问题,因为早期的版本有点复杂。

以下是该方案:

  • 我有一个名为“教堂”的MySQL表。
  • 我有一个有四个选择的表格。选项是从表中动态绘制的,因此用户可以搜索四个表列以查找符合条件的教堂(国家,州/省,城市,长老会)
  • 我还有工作代码来显示所有表数据。

我还没想到的是如何使用表单中的选定选项来过滤结果。

我目前的代码如下:

    <form action="display0506b.php" method="post">
<select name="country">
<option value=""></option>
<?php 
$query = mysqli_query($link, "SELECT DISTINCT country FROM churches");
$query_display = mysqli_query($link,"SELECT * FROM churches");
while ($row = mysqli_fetch_array($query)){
echo "<option value='" . $row['id']."'>". $row['country'] . "</option>";
}
?>
</select>
<select name="state">
<option value=""></option>
<?php 
$query = mysqli_query($link, "SELECT DISTINCT state FROM churches WHERE state != ''");
$query_display = mysqli_query($link,"SELECT * FROM churches WHERE state != ''");
while ($row = mysqli_fetch_array($query)){
echo "<option value='" . $row['id']."'>". $row['state'] . "</option>";
}
?>
</select>
<input type="submit" value="Go!">
</form>

<?php
  if(isset($_POST['country']))
  {
  $name = $_POST['country'];
    $fetch = "SELECT * FROM churches WHERE id = '".$name."'";
    $result = mysqli_query($link,$fetch);

  echo '<div class="churchdisplay">
        <h4>' .$row['churchname'].'</h4>
        <p class="detail">' .$row['detail'].'</p>
        <p><b>' .$row['city'].'</b>, ' .$row['state'].' ' .$row['country'].'</p>
        <p>' .$row['phone'].'</p>
        // etc etc
        </div>';
  }

  else{
  echo  "<p>Please enter a search query</p>";
  }

?>

请注意,在上面的表格中,我只有两个选择用于说明,但最终我将有四个,如上所述;而且我现在只是尝试选择国家来保持简单。最终,我需要能够选择四个类别中的任何(最好是全部)。

正如您所看到的,此代码确实尝试从表单中“抓取”所选值,但它无法正常工作。我考虑过很多教程和例子,但是没有一个能完全按照我的要求行事,作为一个极端的PHP新手,我很难过。

所以问题是:我如何调整这个以便我可以“抓住”表单选择并显示表格中的相关结果?

编辑:我正在使用mysqli语法,并希望尽可能使用PHP和MYSQL(没有Ajax等)。

1 个答案:

答案 0 :(得分:0)

好吧,看起来我终于找到了我需要的东西:

display result from dropdown menu only when value from it is selected

或者,我应该说,我已经使用一个选择选项。还是需要看看我是否能弄清楚如何让四个人一起工作。