简体   繁体   中英

php select option from dropdown

I am working on a project I need to select option from html dropdown list and then display the data selected from database. Just like filter and display the filtered data from database. Still not working Am getting error:

Its just displaying all data from db not by filtered query

<form action="search.php" method="POST">
<div class="md-form">
<select class="mdb-select" name="state_search" required>
<option disabled selected>Choose your State</option>
<option name="state" value="Abia State">Abia State</option>
<option name="state" value="Adamawa State">Adamawa State</option>
<option name="state" value="Anambra State">Anambra State</option>
</select>
</div>
<div class="col-lg-4">
<div class="md-form">
<select class="mdb-select" name="school_search">
<option value="" disabled selected>Choose your School</option>
<option value="Michael Opkara University">Mouau</option>
<option value="University of Benin">UniBen</option>
<option value="University of Porthacourt">UniPort</option>
</select>
</div>
<button type="submit" class="btn purple-gradient btn-lg" name="filter">Search <i class="fa fa-paper-plane-o ml-1"></i></button>
</div>
</form>

PHP

        <?php
$school_search = $connect->real_escape_string($_POST["school_search"]);
$state_search = $connect->real_escape_string($_POST["state_search"]);

$query = mysqli_query($connect, "SELECT * FROM roomate WHERE (`state` LIKE '%".$state_search."%') OR (`school` LIKE '%".$school_search."%')") or die(mysql_error());
if($query){
  while($row = mysqli_fetch_array($query)){
    ?>
    <div class="container" style="padding-top:70px;">
    <!--Grid row-->
      <div class="row">
        <?php
        foreach ($query  as $user) {?>
          <div class="col-lg-4 col-md-12 mb-r">
            <!--Featured image-->
            <div class="overlay hm-white-slight z-depth-1-half mb-2">
              <img src="<?php echo $user['room_avatar']?>" class="img-fluid" alt="avatar image">
              <a><div class="mask"></div></a>
            </div>
            <!--Excerpt-->
            <a href="" class="pink-text">
              <h6>
                <i class="fa fa-map"></i><strong><?php echo $user['city'];?>, <?php echo $user['state'];?></strong><br>
                <small><?php echo $user['school'];?></small>
              </h6>
            </a>
            <h4><?php echo $user['type'];?></h4>
            <p>
              by <a><strong><?php echo $user['room_name'];?></strong></a>
              <?php echo $user['created'];?>
            </p>
            <label class="badge badge-danger"> non-verified </label>
            <a href="contact.php">
              <label class="badge badge-primary">Report Scam</label>
            </a>
            <p><?php echo $user['discription'];?></p>
            <a class="btn btn-pink btn-rounded">Contact <?php echo $user['room_name'];?></a>
          </div>
        <?php
        } ?>  
      </div>      
    </div>
    <?php
  }
}
else{
  echo(mysql_error());
}

?>

Need help making this work out

The name of your select needs to match the $_POST variable key.

So in your case your <select> need the name state_search .

or change your $_POST search to $_POST['state'] to match your select name.

also you should use the $state_search variable in your query instead of $query .

You may have more issues , just pay attention to details.

You put to much HTML in echo function.

<?php
$school_search = $connect->real_escape_string($_POST["school_search"]);
$state_search = $connect->real_escape_string($_POST["state_search"]);

$query = mysqli_query($connect, "SELECT * FROM roomate WHERE (`room_name` LIKE '%".$query."%') OR (`discription` LIKE '%".$query."%') OR (`discription` LIKE '%".$query."%') OR (`type` LIKE '%".$query."%')") or die(mysql_error());;
$result = mysqli_query($connect, $query);
if($result){
  while($row = mysqli_fetch_array($result)){
    ?>
    <div class="container" style="padding-top:70px;">
    <!--Grid row-->
      <div class="row">
        <?php
        foreach ($query  as $user) {?>
          <div class="col-lg-4 col-md-12 mb-r">
            <!--Featured image-->
            <div class="overlay hm-white-slight z-depth-1-half mb-2">
              <img src="<?php echo $user['room_avatar']?>" class="img-fluid" alt="avatar image">
              <a><div class="mask"></div></a>
            </div>
            <!--Excerpt-->
            <a href="" class="pink-text">
              <h6>
                <i class="fa fa-map"></i><strong><?php echo $user['city'];?>, <?php echo $user['state'];?></strong><br>
                <small><?php echo $user['school'];?></small>
              </h6>
            </a>
            <h4><?php echo $user['type'];?></h4>
            <p>
              by <a><strong><?php echo $user['room_name'];?></strong></a>
              <?php echo $user['created'];?>
            </p>
            <label class="badge badge-danger"> non-verified </label>
            <a href="contact.php">
              <label class="badge badge-primary">Report Scam</label>
            </a>
            <p><?php echo $user['discription'];?></p>
            <a class="btn btn-pink btn-rounded">Contact <?php echo $user['room_name'];?></a>
          </div>
        <?php
        } ?>  
      </div>      
    </div>
    <?php
  }
}
else{
  echo(mysql_error());
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM