Поисковая система Php mysql показывает все результаты вместо конкретных

Андрюха Фурашев

Пользователь
Регистрация
18.07.12
Сообщения
1
Реакции
0
Баллы
1
Здравствуйте друзья,

Я пытаюсь создать поисковую систему php mysql, следуя руководству
но почему-то, когда я ищу конкретное имя, отображаются все результаты
что здесь не так?

вот мой код

Код:
<?php
$conn_error = "could not connect";
$mysql_host= "localhost";
$mysql_user = "root";
$mysql_pass ="";
$mysql_db ="a_database";
$conn = mysqli_connect($mysql_host,$mysql_user,$mysql_pass,$mysql_db);

if(!$conn){ die("Connection failed: ". mysqli_connect_error());
}
?>

PHP: а вот Connect.inc.php
Поисковая система Php mysql показывает все результаты вместо конкретных
<?php require "connect.inc.php"; global $conn; $search_name = $_POST["search_name"]; if(isset($search_name)){ if(!empty($search_name)){ $query = "SELECT name FROM names WHERE name LIKE '%" .mysqli_real_escape_string($search_name). "%'"; $query_run = mysqli_query($conn,$query); if(mysqli_num_rows($query_run)>=1){ echo "Results found" ."<br>"; while($row = mysqli_fetch_assoc($query_run)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } }else{ echo "no results found"; } } } ?> <form action ="index.php" method ="POST"> Name:<input type ="text" name="search_name"><input type="submit" value = "Search"> </form>
PHP: я использую wampserver для проверки кода
 

zlu4kka

Пользователь
Регистрация
27.10.10
Сообщения
13
Реакции
0
Баллы
1
Адрес
кривой рог
Опять же, я не разбираюсь в mysqli, поэтому в исходном посте я довольно сильно облажался. Это чище делать в PDO.

Зачем заниматься чем-то вроде подсчета результатов, если в этом нет необходимости? Просто потяните первый, если удастся отправить сообщение, то сделайте/пока. Не ракетостроение.
 

li3ka

Пользователь
Регистрация
01.01.70
Сообщения
1
Реакции
0
Баллы
1
Адрес
Costa Rica
Спасибо за помощь

но я решил эту проблему

я изменил эту строку
из этого

$query = "SELECT `name` FROM `names` WHERE `name` LIKE '%" .mysqli_real_escape_string($conn,$search_name). "%'";

PHP: к этому
$query = "SELECT name FROM names WHERE name LIKE '%" .mysqli_real_escape_string($search_name). "%'";
PHP: и теперь все работает нормально
спасибо всем за помощь
 

Fox_yojik

Пользователь
Регистрация
13.03.13
Сообщения
1
Реакции
0
Баллы
1
Привет, к сожалению, я тоже
Любой ошибки сообщается в журнале вашего сервера?
Кроме того, поскольку вы используете id (в строке кода № 15), возможно, вам следует закодировать строку № 10 как:
$query = "SELECT `id`, `name` FROM ...
Код (разметка):
 

Skycopy

Пользователь
Регистрация
13.08.12
Сообщения
3
Реакции
0
Баллы
1
Ваш sql-запрос выглядит хорошо. Должно сработать. Я бы предложил использовать какой-нибудь профилировщик MySQL, чтобы поймать ваш SQL-запрос. Прежде всего, нам необходимо убедиться, что ваш запрос был выполнен. Затем вы можете попробовать выполнить тот же запрос из командной строки и увидеть результаты.
 
Сверху Снизу