PHP:尝试使用组合框过滤表中的数据库信息

时间:2017-09-04 11:42:34

标签: php html database web

所以我试图根据组合框中的选定项目对信息进行排序。我熟悉PHP的部分但仍在学习。

我能够使用我的数据库中的'Brand_Name'列信息填充组合框。

这是我目前的输出: image

虽然它没有过滤,但它只列出了数据库中的所有项目

见下面的代码:

<?php
$hostname = "localhost";
$username = "root";
$password = "root";
$databaseName = "Clients";
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$queryDropdown = "SELECT * FROM `Brands` WHERE 1";
$result = mysqli_query($connect, $queryDropdown);
$queryGrid = "SELECT * FROM `Brands` ";
$SearchResult = mysqli_query($connect, $queryGrid);
?>
<html>
<head>
    <title>PokerPass</title>
      <link rel="stylesheet" type="text/css" href="styles/Main.css">
      <link rel="stylesheet" type="text/css" href="styles/ComboBox.css">
      <link rel="stylesheet" type="text/css" href="styles/TableGrid.css">
</head>
<body >
    <div id="Container" class="Container">
        <div id="Header" class="Header">

        </div>
        <div id="Body" class="Body">
            <div name="start" id="Filter_Bar" class="Filter_Bar">
                <select class="soflow" id="soflow" Size="1">
                  <?php while($row1 = mysqli_fetch_array($result)):; ?>
                  <option><?php echo $row1[1]; ?></option>
                <?php endwhile; ?>
                </select>
                <button class="Submit" ><span><strong>Search<strong></span></button>
                <!--<input class="Submit" type="submit" name="search" value="Search </span>">-->
            </div>
            <div id="Data_Grid" class="Data_Grid">
                  <table>
                    <tr>
                      <th>Server ID</th>
                      <th>Client</th>
                      <th>Operator</th>
                      <th>Username</th>
                      <th>Password</th>
                    </tr>
                    <?php while ($row = mysqli_fetch_array($SearchResult)):; ?>
                    <tr>
                      <td><?php echo $row['ServerID']; ?></td>
                      <td><?php echo $row['Brand_Name']; ?></td>
                      <td><?php echo $row['Operator_Name']; ?></td>
                      <td><?php echo $row['Username']; ?></td>
                      <td><?php echo $row['Password']; ?></td>
                    </tr>
                    <?php endwhile; ?>
                  </table>
            </div>
        </div>
        <div id="Footer" class="Footer">

        </div>
    </div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

在您的HTML代码中,您的select元素没有name属性,因此您无法在提交表单时获取其值。此外,您的option元素没有value属性,因此即使表单已提交且select有名称,该值也将为空。 See this guide

您的select元素不在form标记内,这意味着当按下该按钮时,该页面不知道该去哪里。您需要一个表单来指定操作(您要访问的URL)和方法(发布/获取)。 See this guide

最后,如果您希望PHP知道您的查询是什么,您需要从GET or POST parameters获取它。获得变量后,可以使SQL查询动态化 - 但要小心而不是引入SQL injection vulnerability - 仔细验证用户输入(例如,只允许数字作为您的值)选择列表)和/或使用参数化查询。

如果您希望在更改下拉列表时自动提交表单,则可以use a quick JS attribute to auto-submit the form

答案 1 :(得分:0)

对于您的示例,您需要将过滤器值应用于查询 您需要根据您的选择构建新查询。

“SELECT * FROM Brands WHERE Client =”+ $ selectedClient;

编辑: 这是关于如何将js变量传递给php的参考: How to pass JavaScript variables to PHP?