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. ladan - 20 Января, 2012 - 09:10:37 - перейти к сообщению
В таблице есть ячейка tema(тип text) с FULLTEXT, и есть 1 запись, где в ячейке tema указано число "11111". Пробую найти совпадения, но всегда выводит, что ничего не найдено... С этим дело никогда не имел, не поможете разобраться?


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form action="" method="post">
  3. <input name="search" type="text"><input name="" type="submit" value="Искать">
  4. </form>
  5. <?
  6.  
  7. $search = mysql_query("SELECT * FROM forum WHERE MATCH(tema) AGAINST('".$_POST['search']."')");
  8. if(mysql_num_rows($search) > 0)
  9.  
  10. {echo "Найдено";}
  11.  
  12. else {echo "Ничего не найдено";}
  13.  
  14.  
  15. ?>
2. Zuldek - 20 Января, 2012 - 09:25:43 - перейти к сообщению
после
Цитата:
$search = mysql_query("SELECT * FROM forum WHERE MATCH(tema) AGAINST('".$_POST['search']."')");

добавьте
3. illy - 20 Января, 2012 - 09:35:10 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <form action="" method="post">
  2. <input name="search" type="text">
  3. <input name="" type="submit" value="Искать">
  4. </form>
  5.  
  6. <?PHP
  7. if(empty($_POST['search'])) { exit; }
  8. print_r($_POST['search']);
  9. $search = mysql_query("SELECT * FROM forum WHERE MATCH(tema) AGAINST('".$_POST['search']."')") or die (mysql_error());
  10. if(mysql_num_rows($search)>0)
  11.  
  12. {echo "Найдено";}
  13.  
  14. else {echo "Ничего не найдено";}
  15.  
  16. $sql=mysql_query("SELECT tema FROM forum") or die(mysql_error());
  17. while($d=mysql_fetch_row($sql)){
  18. echo $d[0].'<br>'  
  19. }
  20. ?>
4. ladan - 20 Января, 2012 - 09:59:05 - перейти к сообщению
illy пишет:
PHP:
скопировать код в буфер обмена
  1. <form action="" method="post">
  2. <input name="search" type="text">
  3. <input name="" type="submit" value="Искать">
  4. </form>
  5.  
  6. <?PHP
  7. if(empty($_POST['search'])) { exit; }
  8. print_r($_POST['search']);
  9. $search = mysql_query("SELECT * FROM forum WHERE MATCH(tema) AGAINST('".$_POST['search']."')") or die (mysql_error());
  10. if(mysql_num_rows($search)>0)
  11.  
  12. {echo "Найдено";}
  13.  
  14. else {echo "Ничего не найдено";}
  15.  
  16. $sql=mysql_query("SELECT tema FROM forum") or die(mysql_error());
  17. while($d=mysql_fetch_row($sql)){
  18. echo $d[0].'<br>'  
  19. }
  20. ?>


Спасибо, так сделал, но ничего не помогло... mysql_error никаких ошибок не выдает Ниндзя
5. illy - 20 Января, 2012 - 11:48:21 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <form action="" method="post">
  2. <input name="search" type="text">
  3. <input name="" type="submit" value="Искать">
  4. </form>
  5.  
  6. <?PHP
  7. if(empty($_POST['search'])) { exit; }
  8. print_r($_POST['search']);
  9. $search = mysql_query("SELECT * FROM forum WHERE tema LIKE '".$_POST['search']."' or tema LIKE '%".$_POST['search']."%' or tema LIKE '%".$_POST['search']."' or tema LIKE '".$_POST['search']."%'") or die (mysql_error());
  10. if(mysql_num_rows($search)>0)
  11.  
  12. {echo "Найдено";}
  13.  
  14. else {echo "Ничего не найдено";}
  15.  
  16. $sql=mysql_query("SELECT tema FROM forum") or die(mysql_error());
  17. while($d=mysql_fetch_row($sql)){
  18. echo $d[0].'<br>';  
  19. }
  20. ?>


echo $d[0].'<br>';
ничего не выводит ?
6. ladan - 20 Января, 2012 - 11:56:36 - перейти к сообщению
сейчас проверю!
(Добавление)
да, классно, все работает! А эти LIKE - аналогия MATCH() AGAINST('')?
(Добавление)
Спасибо большое Улыбка
7. illy - 20 Января, 2012 - 12:17:12 - перейти к сообщению
думаю аналогия но занимает больше букв Улыбка
8. ladan - 20 Января, 2012 - 22:23:41 - перейти к сообщению
Подмигивание
9. LIME - 21 Января, 2012 - 01:42:41 - перейти к сообщению
ladan пишет:
А эти LIKE - аналогия MATCH() AGAINST('')?
полнотекстовый поиск работает только на движке MyISAM или InnoDB версии 5.6.4 и выше
на InnoDB надо пользоваться LIKE
(Добавление)
illy пишет:
$search = mysql_query("SELECT * FROM forum WHERE tema LIKE '".$_POST['search']."' or tema LIKE '%".$_POST['search']."%' or tema LIKE '%".$_POST['search']."' or tema LIKE '".$_POST['search']."%'")
идентично
PHP:
скопировать код в буфер обмена
  1. $search = mysql_query("SELECT * FROM forum WHERE tema LIKE  '%{$_POST['search']}%'");

(Добавление)
возможно не соответствуют кодировки

 

Powered by ExBB FM 1.0 RC1