Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Повторы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: достали повторы
Bioslave
Отправлено: 08 Августа, 2011 - 07:42:07
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Добрый день, мне нужна сделать поиск по ключевым словам, я в принципе сделал его, но например у 1 объекта ключевик слово пока при поиске он даёт интерацию 2-3 раза, и ещё мне нужна сделать если даже у 2 разных объектов одно и тот-же ключевик то выводим обе объекта, вот код:

PHP:
скопировать код в буфер обмена
  1. function search ($query)
  2. {
  3.     $query = trim($query);
  4.     $query = htmlspecialchars($query);
  5.     $query = mysql_real_escape_string($query);
  6.     $query = stripslashes($query);
  7.     if (!empty($query))
  8.     {
  9.         if (strlen($query) < 3)
  10.             $text = '<p>Слишком короткий поисковый запрос.</p>
  11.            ';
  12.         else if (strlen($query) > 128)
  13.             $text = '<p>Слишком длинный поисковый запрос.</p>
  14.            ';
  15.         else
  16.         {
  17.             //$q = "SELECT `small`, `text_pro` FROM `properties` WHERE `small` LIKE '%$query%' OR `text_pro` LIKE '%$query%'";
  18.             $q = "SELECT DISTINCT * FROM `properties` JOIN `object` ON properties.obj_id = object.id WHERE object.small LIKE '%$query%' OR properties.text_pro LIKE '%$query%'";
  19.             $result = mysql_query($q);
  20.             if (mysql_affected_rows() > 0)
  21.             {
  22.                 $row = mysql_fetch_assoc($result);
  23.                 $num = mysql_num_rows($result);
  24.                 $text = '<p>По запросу <strong>'.$query.'</strong> найдено совпадений:<b>&nbsp;&nbsp;&nbsp;'.$num.'</b></p><a href ="index1.php">Вернуться на Главную страницу</a>
  25.                ';
  26.                 do
  27.                 {
  28.                     $q1 = "SELECT DISTINCT `small` FROM `object` ORDER BY `small` "; // Делаем запрос, получающий ссылки на файлы.
  29.                     //$q1 = "SELECT DISTINCT `text_pro` FROM `properties` "; // Делаем запрос, получающий ссылки на файлы.
  30.                     $result1 = mysql_query($q1);
  31.                     if (mysql_affected_rows() > 0)
  32.                         $row1 = mysql_fetch_assoc($result1);
  33.                     $text .= '
  34.                    <section class="article_description">
  35.                    <hr>
  36.                    <div align="left"><b>Найденные файлы:</b></div><br>
  37.                    <a href="/test/uploads/'.$row['small'].'" target="_blank"><b>'.$row['id'].')</b>&nbsp;&nbsp;'.$row['small'].'</a>
  38.                    <hr><br>
  39.                    <b>Ключевое слово:</b>&nbsp;&nbsp;&nbsp;<p>'.$row['text_pro'].'</p>
  40.                    </section>
  41.                    ';
  42.                 }
  43.                 while ($row = mysql_fetch_assoc($result));
  44.  
  45.             }
  46.             else
  47.                 $text = '<p>По запросу <strong>'.$query.'</strong> Ничего не найдено.</p>
  48.                ';
  49.         }
  50.     }
  51.     else
  52.         $text = '<p>Задан пустой поисковый запрос.</p>
  53.        ';
  54.     return $text;
  55. }
  56. if (!empty($_POST['query']))
  57. {
  58.     $search_result = search ($_POST['query']);
  59.     echo $search_result;
  60. }

(Добавление)
Решил проблему:

PHP:
скопировать код в буфер обмена
  1.            $q = "SELECT DISTINCT properties.text_pro,object.small FROM `properties` JOIN `object` ON properties.obj_id = object.id WHERE object.small = '".$query."' OR properties.text_pro = '".$query."'";
  2.  


Просто нужна убрать LIKE.


-----
Ася:-ПятьШесть4035773
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB