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
Форумы портала PHP.SU :: Версия для печати :: Подсчет количества найденных записей
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Подсчет количества найденных записей

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

1. inkor - 07 Марта, 2013 - 17:06:17 - перейти к сообщению
Здравствуйте!
Столкнулся со следующей проблемой: нужно получить количество записей в базе, в названии которых присутствует Поисковый Запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $res = mysql_query("SELECT * FROM articles WHERE title LIKE '%$search%'",$db);  
  3.  
  4. $temp1 = mysql_num_rows($res);
  5.  
  6. echo "Значений в базе -". $temp1;
  7.  


данный код не работает.
раньше использовал

PHP:
скопировать код в буфер обмена
  1.  
  2. $res = mysql_query("SELECT COUNT(*) FROM articles WHERE MATCH(title) AGAINST('$search') ",$db);
  3.  
  4. $temp1 = mysql_fetch_array($res);
  5.  
  6. echo "Значений в базе -". $temp1[0];
  7.  


но проблема в том, что данный поиск не ищет менее 4-х символов, а иногда запросы бывают 3-х символьные (BMW, например)

как получить количество записей в базе, в названии которых присутствует Поисковый Запрос?
2. LIME - 07 Марта, 2013 - 17:09:47 - перейти к сообщению
COUNT(*) vs *
разница есть?
3. Мелкий - 07 Марта, 2013 - 18:37:56 - перейти к сообщению
inkor пишет:
но проблема в том, что данный поиск не ищет менее 4-х символов

Это не проблема, а осознанное ограничение полнотекстового поиска myisam.
Рулится в конфиге параметрами ft_min_word_len и ft_max_word_len ( http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]fine-tuning[dot]html )

Но гораздо лучше ставьте sphinx.
4. inkor - 07 Марта, 2013 - 21:16:41 - перейти к сообщению
Странно но в базе SQL запрос SELECT COUNT(*) FROM articles WHERE title LIKE '%поиск%' - проходит
а на сайте не работает

PHP:
скопировать код в буфер обмена
  1.  
  2. $res = mysql_query("SELECT COUNT(*) FROM articles WHERE title LIKE '%$search%'",$db);  
  3.  
  4. $temp1 = mysql_fetch_array($res);
  5.  
  6. print_r ($temp1);
  7.  
  8.  

выводит нули , хотя данные в базе есть
5. LIME - 07 Марта, 2013 - 21:20:19 - перейти к сообщению
http://phpfaq[dot]ru/debug
(Добавление)
PHP:
скопировать код в буфер обмена
  1. echo $query="SELECT COUNT(*) FROM articles WHERE title LIKE '%$search%'";
  2. $res = mysql_query($query,$db) or die(mysql_error());
6. inkor - 08 Марта, 2013 - 10:38:12 - перейти к сообщению
Спасибо! разобрался!! работает!!!
7. LIME - 08 Марта, 2013 - 12:24:50 - перейти к сообщению

Дата рег-ции: Янв. 2008
Не понял

 

Powered by ExBB FM 1.0 RC1