За последние 24 часа нас посетили 19086 программистов и 1623 робота. Сейчас ищут 766 программистов ...

поиск слова в БД

Тема в разделе "PHP и базы данных", создана пользователем jikaka, 17 фев 2011.

  1. jikaka

    jikaka Активный пользователь

    С нами с:
    17 фев 2011
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Питер
    всем привет!
    в универе на занятиях делаем свой мини-блог, в котором в частности есть заметки и комментарии к ним
    встал вопрос с поиском слова по заметкам и вывода всех заметок имеющих поисковое слово
    не могу сообразить что делать

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

    файл с формой поиска и самим поиском делаю таким образом:
    PHP:
    1.  
    2. <?php
    3. require_once("config.php");
    4. require_once("header-blog.php");
    5. require_once("menu-blog.php");
    6.  
    7. echo "<h1>Поиск по заметкам</h1>";
    8. echo "<div align='center'>";
    9. echo "<form action='' method='POST'>";
    10. echo "<input type='text' name='word' size='65' /> ";
    11. echo "<input type='submit' value='Поиск' /> ";
    12. echo "</form>";
    13. echo "</div>";
    14.  
    15. $word = $_POST['word'];
    16. $submit = $_POST['submit'];
    17. if ($submit) {
    18.     $query = "SELECT * FROM notes WHERE content LIKE '%$word%'";
    19.     $result = mysqli_query($link, $query) or die(mysqli_error());
    20.     while ($search_word = mysqli_fetch_array($result)) {
    21.      echo $search_word['content'];
    22.     }
    23. }
    24.  
    25. require_once("footer-blog.php");
    26. ?>
    27.  
    не пойму, что не так делаю...
    прошу помощи
    очень нужно
    заранее спасибо...
     
  2. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
    Покажите структуру ДБ.
     
  3. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    после этой строки $query = "SELECT * FROM notes WHERE content LIKE '%$word%'";
    напиши

    echo $query; die();

    На экране будет сам запрос. Копируешь, вставляешь например в phpma или консоль, выполняешь и смотришь ошибки, либо результаты.
     
  4. psyl

    psyl Активный пользователь

    С нами с:
    5 мар 2011
    Сообщения:
    10
    Симпатии:
    0
    Попробуй сделать переменную
    $word=''%'.$word.''%';
    Ну или в таком духе...
     
  5. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) нужно указать атрибут name для кнопки
    PHP:
    1.  
    2. echo "<input type='submit' name='search' value='Поиск' /> ";
    3.  
    2) проверка, что нажали кнопку
    PHP:
    1.  
    2.  
    3. if(isset($_POST['search']))
    4. {
    5.       //твой код для поиска и вывода результатов поиска
    6. }
    7.  
     
  6. Tony

    Tony Активный пользователь

    С нами с:
    22 мар 2011
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    Russia
    а разве нельзя просто сделать
    Код (Text):
    1. $query = "SELECT * FROM notes WHERE content LIKE '%$_POST[word]%'";
    Вот к примеру как я делал поиск
    Код (Text):
    1. <?php
    2. include "config.php";
    3.  
    4. $ath = mysql_query("select * from test WHERE city LIKE '%$_GET[city]%' AND sea  LIKE '%$_GET[sea]%' AND feed  LIKE '%$_GET[feed]%' AND infra  LIKE '%$_GET[infra]%' AND cost  LIKE '%$_GET[cost]%'");
    5. if($ath)
    6. {
    7.  
    8.   echo "<table class='tablesorter' border=0>";
    9.   echo "<tr><th>Название</th><th>Город</th><th>Удаленность от моря</th><th>Питание</th><th>Инфраструктура</th><th>Стоимость</th></tr>";
    10.  
    11.   while($test = mysql_fetch_array($ath))
    12.   {
    13.     echo "<tr><td>".$test['name']."&nbsp;</td><td>".$test['city']."
    14.     &nbsp </td><td>".$test['sea']."&nbsp;</td><td>".  
    15.     $test['feed']."&nbsp;</td><td>".$test['infra']."&nbsp;</td><td>".$test['cost']."&nbsp;</td></tr>";
    16.   }
    17.   echo "</table>";
    18. }
    19. else
    20. {
    21.   echo "<p><b>Error: ".mysql_error()."</b><p>";
    22.   exit();
    23. }
    24. ?>
     
  7. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
  8. Tony

    Tony Активный пользователь

    С нами с:
    22 мар 2011
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    Russia
    Benjamin
    htmlspecialchars() поправит дело ?
     
  9. Benjamin

    Benjamin Активный пользователь

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
    Прочитай всю страницу еще раз внимательно, пожалуйста.