За последние 24 часа нас посетили 35056 программистов и 1756 роботов. Сейчас ищут 772 программиста ...

Поиск по базе

Тема в разделе "MySQL", создана пользователем -Vladimir-, 20 окт 2009.

  1. -Vladimir-

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

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    В базе данных информация находится ввиде переменных id, category, title, text.
    Этот скрипт осуществляет поиск по всей базе по переменным title и text:
    PHP:
    1. <?php
    2. require_once 'db.php';
    3.  
    4. // Избавляемся от возможных уязвимостей
    5. $search = strip_tags($_GET['search']);
    6. //$search = htmlentities($search, ENT_QUOTES, 'cp1251');
    7. $search = htmlspecialchars($search);
    8. $search = mysql_real_escape_string($search);
    9. // END
    10.  
    11. $query = "SELECT * FROM `info` WHERE title LIKE '%$search%' OR text LIKE '%$search%'";
    12.  
    13. $result = mysql_query($query);
    14.  
    15. $count = mysql_num_rows($result);
    16.  
    17. if ($count < 1)
    18. {
    19. echo "Поиск не дал результатов..."; exit();
    20. }
    21.  
    22.  
    23. // Блок с выводом всей найденой инфы
    24. for ($i=0;$i<$count;$i++)
    25. {
    26. $row = mysql_fetch_array($result);
    27.  
    28. // Дизайнить тут!
    29. echo "ID: ".$row['id']." Заголовок: ".$row['title']."<br>
    30. ";
    31. }
    32. // end->>
    33. ?>
    Как сделать, чтобы поиск происходил только по какой-либо определённой категории (category) ?
     
  2. SDR

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

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    (title LIKE '%$search%' OR text LIKE '%$search%') AND category = '$category'

    :)
     
  3. -Vladimir-

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

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    Спасибо!

    А как для нескольких категорий сделать?
    Можно через запятую: category = 1, 2, 3... ?
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    category IN (,,,,,,,,,)
     
  5. -Vladimir-

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

    С нами с:
    20 сен 2009
    Сообщения:
    139
    Симпатии:
    0
    category IN (,,,,,,,,,)

    не работает почему-то

    а это нормально
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Что значит не работает?

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