Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как сложить два массива?

Сообщения:  [1-10]   [11-16] 

 
 автор: sega_z   (07.09.2011 в 23:18)   письмо автору
 
   для: Valick   (07.09.2011 в 22:45)
 

Ну все равно, спасибо вам!!!

  Ответить  
 
 автор: Valick   (07.09.2011 в 22:45)   письмо автору
 
   для: sega_z   (07.09.2011 в 21:57)
 

ну во-первых по слову Продам не нужно искать, это должен быть соответствующий раздел)
просто посмотрите информацию на тему полнотекстового поиска
___
лично я бы собирал информацию о поисковых запросах и создал бы базу таких слов и всякого рода вариаций этих слов, ставил в соответствие значимую часть слова и по ней бы делал полнотекстовый поиск, хотя это только размышления, вам нужен совет от человека с большей практикой чем у меня

  Ответить  
 
 автор: sega_z   (07.09.2011 в 21:57)   письмо автору
 
   для: Valick   (07.09.2011 в 21:08)
 

Да, действительно нагрузка на сервер сильная.
А можете подсказать, как сделать поиск по базе похожих слов без использования оператора LIKE?
Потому, что при поиске по слову "Продам" строки со словом "Продаю" уже не выводятся оператором LIKE и TEXTREA

  Ответить  
 
 автор: Valick   (07.09.2011 в 21:08)   письмо автору
 
   для: sega_z   (07.09.2011 в 19:58)
 

вот вы сейчас выдернули чеку из гранаты и вертите её на пальце
помочь в чем? завалить сервер? :)
для поиска по базе есть штатные средства
___
для удаления дублей есть DISTINCT
да и слова в нижнем регистре можно сразу из базы дергать.. но это вас не спасет)

  Ответить  
 
 автор: sega_z   (07.09.2011 в 19:58)   письмо автору
 
   для: sega_z   (06.09.2011 в 20:21)
 

Что никто не поможет???

  Ответить  
 
 автор: sega_z   (06.09.2011 в 21:03)   письмо автору
 
   для: nikita2206   (06.09.2011 в 20:13)
 

Можно на моём примере показать вашу версию?

  Ответить  
 
 автор: sega_z   (06.09.2011 в 20:21)   письмо автору
 
   для: cheops   (06.09.2011 в 20:14)
 

Немного не понятно. Давайте я приведу вам конкретный код:
Это своего рода поиск схожих слов в тексте и заголовке объявления


$str1 = "норковая шуба";
   $str1 = mb_strtolower($str1); // Приводим все символы к нижнему регистру
   $a1 = explode(" ",$str1); // Заносим слова в массив
   $result = mysql_query("SELECT * FROM doska ORDER BY id DESC",$db);
   $myrow = mysql_fetch_array ($result);
   do
   {
   $str2 = $myrow['zagolovok'];
   $str2 = strtolower($str2); // Приводим все символы к нижнему регистру
   $a2 = explode(" ",$str2); // Заносим слова в массив
   $str3 = $myrow['text_obyavl'];
   $str3 = strtolower($str3); // Приводим все символы к нижнему регистру
   $a3 = explode(" ",$str3); // Заносим слова в массив
   $a = array_merge($a2, $a3);
   for($i = 0; $i < count($a); $i++)
   {
   $var1 = similar_text($a1[0], $a[$i], &$tmp1);
   if ($tmp1 >= 75)
   {
   for($i = 0; $i < count($a); $i++)
   {
   $var2 = similar_text($a1[1], $a[$i], &$tmp2);
   if ($tmp2 >= 75)
   {
   $zagolovok = $myrow['zagolovok'];
   $id = $myrow['id'];
   echo "№ $id: $zagolovok $tmp1, $tmp2<br><br>"; // схожесть строк в процентах
   }
   }
   }
   }
   }
   while ($myrow = mysql_fetch_array ($result));


Проблема в том, что так выводятся одинаковые номера объявлений несколько раз

  Ответить  
 
 автор: cheops   (06.09.2011 в 20:14)   письмо автору
 
   для: sega_z   (06.09.2011 в 20:00)
 

Тут либо данные из таблицы лучше предварительно помещать в массив, который можно превратить в уникальный, либо, что предпочтительно, добиться уникального вывода средствами SQL - собственно он для этого и проектировался.

  Ответить  
 
 автор: nikita2206   (06.09.2011 в 20:13)   письмо автору
 
   для: sega_z   (06.09.2011 в 20:00)
 

вести параллельно массив с id. на каждой итерации проверять, есть ли в массиве этот id, если нет, то выводим и добавляем его туда

  Ответить  
 
 автор: sega_z   (06.09.2011 в 20:00)   письмо автору
 
   для: cheops   (06.09.2011 в 19:49)
 

Допустим в цикле do - while присваивается значения переменной $id из б.д. (значения в этом цикле могут повторятся) и выводится указанным оператором (printf ($id)).

Как сделать чтобы находясь в цикле оператор выводил одиннаковые значения только один раз?

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования