<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Поиск на сайте не работает
11.05.2013 02:34:59 Поиск на сайте не работает Сообщение #1
kva191098

kva191098

Новичок

Новичок

Дата регистрации:
12.10.2012 18:29:53

Сообщений: 7

Я пытаюсь и у меня не получается ! Я ввел данные вот такие:

<?php
function search($words){
$words = htmlspecialchars($words);
if ($words === "" return false;
$query_search = "";

$arraywords = explode(" ", $words);
foreach($arraywords as $key => $value){
if (isset($arraywords[$key - 1]))
$query_search .= ' OR ';
$query_search = '`name` LIKE "%'.$value.'%" OR `content` LIKE "%'.$value.'%"';
}

$mysqli = new mysqli("localhost", "Test1", "123456", "blog";
$result_set = $mysqli->query("";
$mysqli->close();
$i = 0;
while($row = $result_set->fetch_assoc()){
$results[$i] = $row;
$i++;
}
$result_set->close();
return $results;
}
if(isset($_POST['bsearch'])){
$words = $_POST['words'];
$results = search($words);
}
?>
<html>
<body>
<head>
<title>Поиск на сайте</title>
</head>
<div class="search">
<h4>Поиск по сайту:</h4>
<form name="search" action="index.php" method="post">
<table>
<tr>
<td class="search_td">
<input type="text" name="words" />
</td>
<td>
<input type="submit" name="bsearch" value= "поиск" />
</td>
</tr>
</table>
</form>
<?php
if (isset($_POST['bsearch'])) {
echo "<h2>Результат поиска</h2>";
if ($results === false) echo " Пустой запрос";
if (count($results) == 0) echo "Ни чего не найдено";
else
for($i = 0; $i < count($results); $i++)
echo $results[$i]['name']."<br />";
echo $results[$i]['content']."<br />";
}
?>
</div>
<body>
</html>

Я написал все так как было в уроке. И уже перепроверил 4 раза весь код. Но все равно у меня когда я ввожу слова поиск не работает. Ошибок не каких не показывает. Просто пишет что ни чего не найдено. А данные в таблице точно есть ! И я ввожу одно слово из этих данных. Помогите мне пожалуйста )
Профиль Ответить
11.05.2013 11:20:21 Поиск на сайте не работает Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Скорее всего, ошибка в запросе. Выведите его через echo и посмотрите, правильный он или нет. Ещё вот это почитайте: http://myrusakov.ru/sql-finderror.html
Профиль Ответить
11.05.2013 17:05:26 Поиск на сайте не работает Сообщение #3
kva191098

kva191098

Новичок

Новичок

Дата регистрации:
12.10.2012 18:29:53

Сообщений: 7

Я проверил с запросом все нормально. Как было указанно в статье. И все равно пишет нечего не найдено вот мой скрипт поиска:

<?php
if(isset($_POST['bsearch'])){
$words = $_POST['words'];
$results = search($words);
}
function search($words){
$words = htmlspecialchars($words);
if ($words === "" return false;
$query_search = "";

$arraywords = explode(" ", $words);
foreach($arraywords as $key => $value){
if (isset($arraywords[$key - 1]))
$query_search .= ' OR ';
$query_search = '`name` LIKE "%'.$value.'%" OR `content` LIKE "%'.$value.'%"';
}
$query = "SELECT * FROM content WHERE '$query_search'";
$mysqli = new mysqli("localhost", "Test1", "123456", "blog";
$result_set = $mysqli->query($query);
echo $query;
$mysqli->close();

$i = 0;
while($row = $result_set->fetch_assoc()){
$results[$i] = $row;
$i++;
}
$result_set->close();
return $results;
}
?>
<html>
<body>
<head>
<title>Поиск на сайте</title>
</head>
<div class="search">
<h4>Поиск по сайту:</h4>
<form name="search" action="index.php" method="post">
<table>
<tr>
<td>
<input type="text" name="words" />
</td>
<td>
<input type="submit" name="bsearch" value= "поиск" />
</td>
</tr>
</table>
</form>
<?php
if (isset($_POST['bsearch'])) {
echo "<h2>Результат поиска</h2>";
if ($results === false) echo " Пустой запрос";
if (count($results) == 0) echo "Ничего не найдено";
else
for($i = 0; $i < count($results); $i++)
echo $results[$i]['name']."<br />";
echo $results[$i]['content']."<br />";
}
?>
</div>
<body>
</html>
Профиль Ответить
11.05.2013 21:34:23 Поиск на сайте не работает Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

То есть данные из базы без проблем выходят? Тогда смотрите, где они исчезают и почему выводится "ничего не найдено". Метод есть, ничего больше знать не нужно.
Профиль Ответить