Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka
Forum PHP.pl > Forum > PHP
sajborg
Witam mam taki skrypcik ktory mi szuka w bazie podanych słów w wyszukiwarce. Tylko mam problem Jak dam wszedzie AND to we wszystkich tabelach musi byc to slowo. Jak beda dwa słowa to we wszystkich tabelach musza byc te slowa. Jesli bedzie OR to tylko w jeden tabeli musi byc to slowo jak beda dwa słowa to tak samo tylko w jeden tabeli musi wystapic jedno slowo a jak zrobic takie cos. Ktos podaje dwa słowa i te dwa słowa musza wystapic w conajmniej jeden tabeli czy jest to wykonalne questionmark.gif

Moj skrypcik
  1. <?php
  2. function where ($fraza,$tabele){
  3.  
  4. $fraza=str_replace("+"," ",$fraza);
  5. if (preg_match('/(.*?)"(.*?)"(.*)/i',$fraza,$wynik)){
  6.  
  7. for($i=1;$i<count($wynik);$i++){
  8.  
  9. if (!empty($wynik[$i])){
  10. for($n=0;$n<count($tabele);$n++){
  11.  
  12. $word=str_replace('"','',$wynik[$i]);
  13. $where .= $tabele[$n]."LIKE '%".$word."%' OR ";
  14.  
  15. }
  16. }
  17.  
  18. }
  19.  
  20. }else{
  21. if (preg_match('/[a-z0-9] [a-z0-9]+/i',$fraza)){
  22. $fraza=explode(' ',$fraza);
  23. for($i=0;$i<count($fraza);$i++){
  24.  
  25. for($n=0;$n<count($tabele);$n++){
  26.  
  27. $where .= $tabele[$n]." LIKE '%".$fraza[$i]."%' OR ";
  28.  
  29. }
  30.  
  31. }
  32. }else{
  33. for($n=0;$n<count($tabele);$n++){
  34.  
  35. $where .= $tabele[$n]." LIKE '%".$fraza."%' OR ";
  36.  
  37. }
  38. }
  39. }
  40.  
  41. $where=substr($where, 0, -4); 
  42. return $where;
  43. }
  44.  
  45. $tabela[]='www';
  46. $tabela[]='opis';
  47. $tabela[]='keywords';
  48. $tabela[]='tresc';
  49. $sql="SELECT * FROM szukarka WHERE ".where($str,$tabela)." ORDER by id DESC";
  50. ?>


A przy okazji czy mozna zrobic jakies uszeregowanie wedlog tego ile bylo trafnych warunków questionmark.gif
legorek
Zainteresuj się, FULL TEXT. Poszukaj też na forum bo było, znajdziesz za równo opinie przeciwników i zwolenników.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.