user3293736
user3293736

Reputation: 23

Search results displaying all information in table

I am trying to search some data from a database and display it. However whenever I click on 'search' all the results in the table are displayed. Any way I can display only the information the user is searching? This is the html code for the form.

<h2> Search </h2>
<form action = "search.php" method = "post" >
  Search for: <input type = "text" name ="find" placeholder="Animal Type/Date"><span   class="required"</span> in
  <select NAME = "field">
    <Option VALUE = "Animal Type"> Animal Type</option>
    <Option VALUE = "dateseen"> Date Required</option>

  </Select>
  <input type= "hidden" name = "searching" value ="yes"/>
  <input type= "submit" name = "search" value ="Search"/>
</form>

This is the PHP code I'm using.

$link=mysqli_connect("localhost","root","");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$db_selected = mysqli_select_db($link,"AnimalTracker1");

if (!$db_selected)
  {
  die ("Can\'t use test_db : " . mysqli_error($link));
  }

//$find = strtoupper($find);
//$find = strip_tags($find);
//$find = trim($find);

$sql=mysqli_query($link, "Select * FROM Locations  ");

if ($sql == FALSE)
{
  die($sql." Error on query: ".mysqli_error($link)); 
}

while($result = mysqli_fetch_array($sql))
{
echo  $result ['Animal Type'];
echo "<br>";
echo $result ['Latitude'];
echo "<br> ";
echo $result ['Longitude'];
echo " <br>";
echo $result ['Seen'];
echo " <br> ";
echo $result ['Time'];
echo "<br> ";
echo "<br> ";
}
//}
?>

Upvotes: 0

Views: 670

Answers (1)

For that you need to first grab the find field of your text box like this..

$searchKeyword = $_POST['find']; // Sanitize this value first !!

Next you need to pass it to your query... Change your yourcolumn to suit your column name.

$sql=mysqli_query($link, "Select * FROM Locations WHERE `yourcolumn` LIKE '%$searchKeyword%' ");

EDIT :

You could grab both fields and do a check..

if(!empty($_POST['find']) && !empty($_POST['field']))
    {
        //do your query like..
        $searchKeyword = $_POST['find']; // Sanitize this value first !!
        $searchKeyword2 = $_POST['field']; // Sanitize this value first !!

        $sql=mysqli_query($link, "Select * FROM Locations WHERE `yourcolumn` LIKE '%$searchKeyword%' AND `yourcolumn2` LIKE '%$searchKeyword2%' ");
    }
    else
    {
        echo "The search criteria cannot be empty !";
    }

Upvotes: 1

Related Questions