Поиск слова в таблице

Вакансии в Москве: Ведуший PHP разработчик 110-150к

Тема в разделе "PHP & Mysql & MariaDB & Percona", создана пользователем vmnetwork, 10 янв 2010.

  1. vmnetwork

    vmnetwork Новичок

    Сообщения:
    51
    Adress:
    Ulyanovsk, Russia
    Country:
    Location on Map:
    Поиск слова в таблице

    В общем-то глупый достаточно наверное вопрос, но никак не получается реализовать простешую функцию - поиск
    PHP:

    $search 
    $_REQUEST['search'];
    $query "select * from catalog where catalogtext like '%$search%'";           
    $resultmysql_query($query);
    while (
    $qry mysql_fetch_array($result)) {
    if (!
    $result)
    print 
    'Результатов нет';

    else {
    print 
    $qry['catalogtitle'];
    print 
    '<br>';
      } 
    }

    Пробовал вот так но вообще ничего не выдает :( что не праильно то?
     
  2. Вурдалак

    Вурдалак Newbie

    Сообщения:
    5.740
    Ваш город:
    Russia, Moscow
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
  3. vmnetwork

    vmnetwork Новичок

    Сообщения:
    51
    Adress:
    Ulyanovsk, Russia
    Country:
    Location on Map:
    ну я так понял везде надо добавлять
    PHP:
    $search addslashes($search);  
    $search stripslashes($search);
     
  4. Вурдалак

    Вурдалак Newbie

    Сообщения:
    5.740
    Ваш город:
    Russia, Moscow
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Нет, ты понял неправильно :)

    -~{}~ 11.01.10 03:22:

    Кстати, небольшой оффтопик по поводу статьи http://phpfaq.ru/slashes

    IMHO, корректнее так:
    PHP:
    <?php
    $var 
    addCslashes($var'_%\\');
    $var mysql_real_escape_string($var);
    Ибо сначала мы должны экранировать спец. символы паттерна для LIKE, а уже потом — строковое значение.

    Результат один, но всё же, всё же...
     
  5. vmnetwork

    vmnetwork Новичок

    Сообщения:
    51
    Adress:
    Ulyanovsk, Russia
    Country:
    Location on Map:
    Вроде как получилось..

    PHP:

    $result 
    mysql_query("SELECT * FROM cat_catalog WHERE catalogtext LIKE '%$search%' OR catalogtitle LIKE '%$search%'");

    while (
    $qry mysql_fetch_array($result)) {

    if (!
    $result){
    print 
    'Результатов нет';
    }

    else {
    print 
    '<a href="?section=d&idcatalog='.$qry['idcatalog'].'">-';
    print 
    $qry['catalogtitle'];
    print 
    '</a><br>';

     }
    }
    Только вот немного странновато ищет, не выдает надпись "Результатов нет"
     
  6. SiZE

    SiZE Новичок

    Сообщения:
    369
    Ваш город:
    Пермь
    Adress:
    Perm, Russia
    Country:
    Location on Map:
    У тебя если результатов нет цикл то не выполнится :) Можешь так:
    PHP:
    $q mysql_query("SELECT * FROM cat_catalog WHERE catalogtext LIKE '%".$search."%' OR catalogtitle LIKE '%".$search."%'");

    if ( !
    mysql_num_rows($q) ) {
      echo 
    "Empty";
    } else {
     while (
    $r mysql_fetch_array($q)) {
      echo 
    '<a href="?section=d&idcatalog='.$r['idcatalog'].'">-'.$r['catalogtitle'].'</a><br>';
     } 
    }