Простой поиск базы данных MySQL с использованием php

В настоящее время у меня есть небольшой скрипт php, который ищет базу данных на основе ввода пользователем. Существует html-файл с одним полем, которое используется для ввода строк поиска в базу данных. По существу, вы можете искать сотрудников.

Предполагается получить результат работника, если он найден, и сообщение «нет сотрудника найдено», если нет.

По какой-то причине, однако, независимо от поиска, запрос возвращает каждого сотрудника в базе данных.

Я работаю над этим более часа, и я честно тупик. Это может быть простая ошибка, но я могу сделать с некоторой помощью.

<?php $con= new mysqli("localhost","root","","Employee"); $name = $_post['search']; //$query = "SELECT * FROM employees // WHERE first_name LIKE '%{$name}%' OR last_name LIKE '%{$name}%'"; // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con, "SELECT * FROM employees WHERE first_name LIKE '%{$name}%' OR last_name LIKE '%{$name}%'"); while ($row = mysqli_fetch_array($result)) { echo $row['first_name'] . " " . $row['last_name']; echo "<br>"; } mysqli_close($con); ?> 

Любая помощь оценивается.

Благодарю.

Вам нужно использовать $_POST не $_post .

Сначала добавьте HTML-код:

 <form action="" method="post"> <input type="text" name="search"> <input type="submit" name="submit" value="Search"> </form> 

Добавлен PHP-код:

 <?php $search_value=$_POST["search"]; $con=new mysqli($servername,$username,$password,$dbname); if($con->connect_error){ echo 'Connection Faild: '.$con->connect_error; }else{ $sql="select * from information where First_Name like '%$search_value%'"; $res=$con->query($sql); while($row=$res->fetch_assoc()){ echo 'First_name: '.$row["First_Name"]; } } ?> в <?php $search_value=$_POST["search"]; $con=new mysqli($servername,$username,$password,$dbname); if($con->connect_error){ echo 'Connection Faild: '.$con->connect_error; }else{ $sql="select * from information where First_Name like '%$search_value%'"; $res=$con->query($sql); while($row=$res->fetch_assoc()){ echo 'First_name: '.$row["First_Name"]; } } ?> 

Это лучший код, который поможет вам.
С вашей базой данных, но, скорее, я использовал mysql not mysqli
Наслаждайся этим.

 <body> <form action="" method="post"> <input name="search" type="search" autofocus><input type="submit" name="button"> </form> <table> <tr><td><b>First Name</td><td></td><td><b>Last Name</td></tr> <?php $con=mysql_connect('localhost', 'root', ''); $db=mysql_select_db('employee'); if(isset($_POST['button'])){ //trigger button click $search=$_POST['search']; $query=mysql_query("select * from employees where first_name like '%{$search}%' || last_name like '%{$search}%' "); if (mysql_num_rows($query) > 0) { while ($row = mysql_fetch_array($query)) { echo "<tr><td>".$row['first_name']."</td><td></td><td>".$row['last_name']."</td></tr>"; } }else{ echo "No employee Found<br><br>"; } }else{ //while not in use of search returns all the values $query=mysql_query("select * from employees"); while ($row = mysql_fetch_array($query)) { echo "<tr><td>".$row['first_name']."</td><td></td><td>".$row['last_name']."</td></tr>"; } } mysql_close(); ?> 

`

 require_once('functions.php'); $errors = FALSE; $errorMessage = ""; if(mysqli_connect_error()){ $errors = TRUE; $errorMessage .= "There was a connection error <br/>"; errorDisplay($errorMessage); die($errors); } else if($errors != "TRUE"){ $errors .= FALSE; } if(isset(mysqli_real_escape_string($_POST['search']))){ $search = mysqli_real_escape_string($_POST['search']); search(search); } ?> <?php //This is functions.php function search($searchQuery){ echo "<div class="col-md-10 col-md-offset-1">"; $searchTerm $query = query("SELECT * FROM `index` WHERE `keywords` LIKE '".$searchTerm."' "); while($row = mysqli_fetch_array($query)){ $results = <<< DELIMITER <div class="result col-md-12"> <a href="index.php?search={$row['id']}"> {$row['Title']} </a> <p class="searchDesc">{$row['description']}</p> </div> DELIMITER; echo $results; } echo "</div>"; } function errorDisplay($msg){ if(!isset($_SESSION['errors'])){ $_SESSION['errors'] = $msg; showError($msg); } else if() { $_SESSION['errors'] .= $msg . "<br>"; showError($msg); } } function showError($msg) { return $msg; unset($_SESSION['errors']); } ?>` Perhaps That Helps? не require_once('functions.php'); $errors = FALSE; $errorMessage = ""; if(mysqli_connect_error()){ $errors = TRUE; $errorMessage .= "There was a connection error <br/>"; errorDisplay($errorMessage); die($errors); } else if($errors != "TRUE"){ $errors .= FALSE; } if(isset(mysqli_real_escape_string($_POST['search']))){ $search = mysqli_real_escape_string($_POST['search']); search(search); } ?> <?php //This is functions.php function search($searchQuery){ echo "<div class="col-md-10 col-md-offset-1">"; $searchTerm $query = query("SELECT * FROM `index` WHERE `keywords` LIKE '".$searchTerm."' "); while($row = mysqli_fetch_array($query)){ $results = <<< DELIMITER <div class="result col-md-12"> <a href="index.php?search={$row['id']}"> {$row['Title']} </a> <p class="searchDesc">{$row['description']}</p> </div> DELIMITER; echo $results; } echo "</div>"; } function errorDisplay($msg){ if(!isset($_SESSION['errors'])){ $_SESSION['errors'] = $msg; showError($msg); } else if() { $_SESSION['errors'] .= $msg . "<br>"; showError($msg); } } function showError($msg) { return $msg; unset($_SESSION['errors']); } ?>` Perhaps That Helps? 

Как раз с вышеуказанным ответом я надеюсь, что это была проблема.

$_POST['search'] вместо $_post['search']

И снова используйте LIKE '%$name%' вместо LIKE '%{$name}%'