Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск слова в БД, поиск по заметкам 
:(
    Опции темы
jikaka
Дата 17.2.2011, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.8.2010

Репутация: нет
Всего: нет



всем привет!
в универе на занятиях делаем свой мини-блог, в котором в частности есть заметки и комментарии к ним
встал вопрос с поиском слова по заметкам и вывода всех заметок имеющих поисковое слово
не могу сообразить что делать

в общем имеется 2 таблицы:
notes с полями id, title, added, content
comments с полями id, added, author, content, notied

форма поиска выглядит таким образом:
Код

echo "<h1>Поиск по заметкам</h1>";
echo "<div align='center'>";
echo "<form action='search.php' method='POST'>";
echo "<input type='text' name='word' size='65' /> ";
echo "<input type='submit' value='Поиск' /> ";
echo "</form>";
echo "</div>";


сам поиск делаю таким образом:

Код

$submit = $_POST['submit'];
if ($submit) {
    $query = "SELECT * FROM notes WHERE content LIKE '%$word%'";
    $result = mysqli_query($link, $query) or die(mysqli_error());
    while ($search_word = mysqli_fetch_array($result)) { 
     echo $search_word['content']; 
    } 
}


не пойму, что не так делаю...
прошу помощи
очень нужно
заранее спасибо...
PM MAIL   Вверх
patap
Дата 17.2.2011, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



глядя на код , можно предположить, что register_globals = Off, и переменная $word - неопределенна. => нужно 

Код

$word = $_POST['word'];



--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
jikaka
Дата 17.2.2011, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.8.2010

Репутация: нет
Всего: нет



все верно, у меня так и есть, забыл просто указать...
т.е. вот так:
Код

$word = $_POST['word'];
$submit = $_POST['submit'];
if ($submit) {
    $query = "SELECT * FROM notes WHERE content LIKE '%$word%'";
    $result = mysqli_query($link, $query) or die(mysqli_error());
    while ($search_word = mysqli_fetch_array($result)) { 
     echo $search_word['content']; 
    } 
}

PM MAIL   Вверх
patap
Дата 17.2.2011, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



возможно нужно проверить правильность всех кодировок:

вот почитай, чтобы много не говорить

проверь явно что приходит в $_POST['word']

также такой код ошибки не выведет, в mysqli_error() нужно передать $link
Код

$result = mysqli_query($link, $query) or die(mysqli_error());


и еще посотри что выводит
Код

$result = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($result);


и как рекомендация, когда используешь mysqli_fetch_array(), желателательно вторым параметром передать тип возвращаемого результата (MYSQLI_ASSOC, MYSQLI_NUM, или MYSQLI_BOTH), тошо по умолчанию тебе будет возвращать двойной набор данных (нумерованый и ассоциативный массивы в одном)

Это сообщение отредактировал(а) patap - 17.2.2011, 11:54


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
jikaka
Дата 17.2.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.8.2010

Репутация: нет
Всего: нет



Цитата

и еще посотри что выводит

ничего не выводит, просто отрабатывает и все...
PM MAIL   Вверх
patap
Дата 17.2.2011, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



тю ты блин. ты ж переменную $_POST['submit'] не передаешь, по-этому там всегда false будет

и условие не срабатывает
Код

$submit = $_POST['submit'];
if ($submit) {

.....


вот так измени
Код

echo echo "<input type='submit' value='Поиск' name='submit' /> ";


Добавлено через 20 секунд
но все равно, все написанное выше - полезно знать


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
jikaka
Дата 17.2.2011, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.8.2010

Репутация: нет
Всего: нет



отлично, спасибо!

Добавлено @ 13:22
для тех, кому может пригодиться, привожу полностью рабочий вариант
организация простого поиска
Код

<?php
require_once("config.php");
require_once("header-blog.php");
require_once("menu-blog.php");
require_once("library.php");

echo "<h1>Поиск по заметкам</h1>";
echo "<div align='center'>";
echo "<form action='' method='POST'>";
echo "<input type='text' name='word' size='65' /> ";
echo "<input type='submit' name='submit' value='Поиск' /> ";
echo "</form>";
echo "</div>";
 
$word = $_POST['word'];
$submit = $_POST['submit'];
if ($submit) {
    $query = "SELECT * FROM notes WHERE content LIKE '%$word%'";
    $result = mysqli_query($link, $query) or die(mysqli_error());
    echo "<h2>Результаты поиска</h2>";
    while ($search_word = mysqli_fetch_array($result)) { 
    echo "<div class='com'>";
        echo "<b>".$search_word['title']."</b><br />";
        echo "<i>".$search_word['added']."</i><br />";
    echo prepareText($search_word['content']);
        echo "</div>";
    } 
}

require_once("footer-blog.php");
?>


Это сообщение отредактировал(а) jikaka - 17.2.2011, 13:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0731 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.