0

I'm making a search field to search id, firstname, lastname and email from the table registration but getting error:

Notice: Undefined variable: valuetosearch in D:\Xampp\htdocs\Registration_system\dashboard.php on line 13

Notice: Undefined variable: query in D:\Xampp\htdocs\Registration_system\dashboard.php on line 14

Warning: mysqli_query(): Empty query in D:\Xampp\htdocs\Registration_system\dashboard.php on line 27

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\Xampp\htdocs\Registration_system\dashboard.php on line 61

<style type="text/css">
    
    table, tr, th, td
    {

      border: 1px solid black;
    }
</style>
<?php

if (isset($_POST['valuetosearch'])) {
    $valuetosearch =$_POST['valuetosearch'];
    $valuetosearch = "SELECT * FROM `registration` WHERE CONCAT(`firstname`, `lastname`, `email`, `phonenumber`) LIKE '%".$valuetosearch."'"; 
    $search_result= filtertable($query);
}

else
{
$query= "SELECT * FROM `registration`";
$search_result= filtertable($query);

}

function filtertable($query){

require_once'config.php';
$filter_result= mysqli_query($CONN, $query);
return $filter_result;

}
?>


<h1>Welcome on dashboard </h1>
<ul>
<li><a href="dashboard.php">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="dashboard.php">Profile</a></li>
<li><a href="login.php">Logout</a></li>
</ul>

<form action="dashboard.php" method="POST">

<input type="text" name="valuetosearch" placeholder="Search here..."> 
<input type="submit" name="search" value="submit"> <br><br>

<table>
    
<tr>
    
<th>id</th>
<th>First name</th>
<th>Last name</th>
<th>email</th>
<th>Phone number</th>

</tr>
<?php while($row= mysqli_fetch_array($search_result)): ?>
<tr>
    <td><?php echo $row['id']; ?></td>
    <td><?php echo $row['firstname']; ?></td>
    <td><?php echo $row['lastname']; ?></td>
    <td><?php echo $row['email']; ?></td>

</tr>

<?php endwhile; ?>
</table>

</form>
Community
  • 1
  • 1

3 Answers3

2

Replace your if (isset($_POST['search'])) { ... } With

if (isset($_POST['search'])) {
$query = "SELECT * FROM `registration` WHERE CONCAT(`firstname`, `lastname`, `email`, `phonenumber`) LIKE '%".$_POST['valuetosearch']."'"; 
$search_result = filtertable($query);}
sndsabin
  • 164
  • 1
  • 6
1

$valuetosearch is used two time in the same line where you define it ( to store your string and as a variable inside you sql)

$query wasn't defined

sheplu
  • 2,937
  • 3
  • 24
  • 21
1

There are many mistakes in your code First Mistake is in your code

if (isset($_POST['search'])) {
    $valuetosearch = "SELECT * FROM `registration` WHERE CONCAT(`firstname`, `lastname`, `email`, `phonenumber`) LIKE '%".$valuetosearch."'"; 
    $search_result= filtertable($query);
}

It Should be

if (isset($_POST['search'])) {
    $query = "SELECT * FROM `registration` WHERE CONCAT(`firstname`, `lastname`, `email`, `phonenumber`) LIKE '%".$valuetosearch."'"; 
    $search_result= filtertable($query);
}
user4906240
  • 605
  • 1
  • 6
  • 20