Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyszukiwarka PHP MySQL. Proszę o ocenę skryptu
Forum PHP.pl > Forum > Przedszkole
Michalo1994
Witajcie. W ramach nauki php postanowiłem napisać wyszukiwarkę php, która łączy się z bazą i wyszukuje podane przez użytkownika frazy.
Użyłem funkcji str_replace aby pousuwać przecinki, explode aby rozdzielić wyrazy i "wsadzić" do tablicy.
Wyszukiwarka działa i zwraca poprawne wyniki. Proszę o ocenę. Czy skrypt jest funkcjonalny? Do czego mozna się przyczepić?
DZiękuję!
  1. <?php
  2. $user_search = $_GET['usersearch'];
  3. $dbc=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
  4.  
  5. $bez_przecinkow = str_replace(',', ' ' , $user_search);
  6. $tylko_slowa = explode(' ' , $bez_przecinkow);
  7. $koncowe_slowa = array();
  8. if (count($tylko_slowa) > 0 ){
  9. foreach($tylko_slowa as $slowa){
  10. if (!empty($slowa)){
  11. $koncowe_slowa[] = $slowa;
  12. }
  13. }
  14. }
  15.  
  16. $lista = array();
  17. foreach($koncowe_slowa as $slowa){
  18. $lista[] = "description LIKE '%$slowa%'";
  19. }
  20. $komenda = implode(' OR ', $lista);
  21. $query= "SELECT * FROM prace WHERE $komenda";
  22.  
  23. $data= mysqli_query($dbc,$query);
  24. while($row=mysqli_fetch_array($data)){
  25. echo $row['title'] . '<br>' ;
  26. }
  27.  
  28.  
  29. ?>
mmmmmmm
1. LIKE + OR... Oj, to trochę potrwa...
2. Zamiast LIKE na takim polu (pewnie text) lepiej użyć FTS (Full Text Search).
3. Na pewno chcesz OR? Nie AND?
OR powiększa podzbiór wynikowy, AND pomniejsza go.
4. A co, gdy wejsce będzie puste?
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.