如何在php中根据搜索条件动态显示表

rqqzpn5f  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(249)

我有三个下拉菜单和一个搜索按钮。当我在这些下拉列表中选择值并按下搜索按钮时,它会根据这些选择的值从数据库中显示一个表。下拉列表从数据库中获取选项值。我的下拉菜单的代码:

<select id="select1" name="select1">
<option selected value="" disabled="disabled">Select an option</option>
<?php 
$sql="SELECT DISTINCT names FROM searchtbl ";        
$result = mysqli_query($sql);
while ($row = mysqli_fetch_array($result)) {
  echo "<option value=' " . $row['names'] ."'>" . $row['names'] ."</option>"; }
?></select>
<select id="select2" name="select2">
<option selected value="" disabled="disabled">Select an option</option>
<?php 
$sql="SELECT DISTINCT courses FROM searchtbl ";        
$result = mysqli_query($sql);
while ($row = mysqli_fetch_array($result)) {
  echo "<option value=' " . $row['courses'] ."'>" . $row['courses'] ."</option>"; }
?></select>
<select id="select3" name="select3">
<option selected value="" disabled="disabled">Select an option</option>
<?php 
$sql="SELECT DISTINCT sec FROM searchtbl ";        
$result = mysqli_query($sql);
while ($row = mysqli_fetch_array($result)) {
  echo "<option value=' " . $row['sec'] ."'>" . $row['sec'] ."</option>"; }
?></select>

sql查询和表的代码:

<?php
$count=1;
$header_printed=false;
$conn=mysqli_connect("localhost","root","","searchtbl");

$select1=isset($_POST['select1']) ? trim($_POST['select1']) :'' ;
$select2=isset($_POST['select2']) ? trim($_POST['select2']) :'' ;
$select3=isset($_POST['select3']) ? trim($_POST['select3']) :'' ;
$sql="SELECT id,names,courses,sec FROM searchtbl WHERE name='".$select1."' AND courses='".$select2."' AND sec='".$select3."'";
$result = mysqli_query($conn,$sql);
if($result){
while (($row=mysqli_fetch_assoc($result)) ){
  if($header_printed==false){
echo "<table>";
echo "<tr> <th>ID</th><th>Names</th> <th>Courses</th> <th>Sec</th></tr>";
$header_printed = true;
  }?>
<tr>   
<td ><?php echo $row["id"]; ?></td>
<td ><?php echo $row["names"]; ?></td>
<td ><?php echo $row["courses"]; ?></td>
<td ><?php echo $row["sec"]; ?></td>
</tr>

<?php $count++; }}

问题问题是我想动态显示表意味着如果我没有在一个或两个搜索框中选择任何值并保留它们,那么它不会在php表中显示该字段(该搜索框)的列,并且只显示我为其选择了值的其他两个或一个列。它在运行时增加或减少列。我不知道怎么做。我需要用php的解决方案。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题