Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem przy tworzeniu wyszukiwarku
Forum PHP.pl > Forum > Przedszkole
Michalo1994
Chcę stworzyć wyszukiwarkę aby podszkolić sięw PHP, mam taki kod:
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Wyniki wyszukiwania</title>
  6. </head>
  7. <?php
  8. require_once('dbc.php');
  9. ?>
  10.  
  11.  
  12. <body>
  13. <?php
  14.  
  15.  
  16. <!doctype html>
  17. <html>
  18. <head>
  19. <meta charset="utf-8">
  20. <title>Wyniki wyszukiwania</title>
  21. </head>
  22. <?php
  23. require_once('dbc.php');
  24. ?>
  25.  
  26.  
  27. <body>
  28. <?php
  29.  
  30.  
  31. $usersearch = $_GET['usersearch'];
  32. $dbc=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
  33.  
  34. $search_query="SELECT * FROM jobs";
  35. $clean_search = str_replace(',',' ', $usersearch);
  36. $search_words = explode(' ' ,$clean_search);
  37. $final_search_words = array();
  38. if (count($search_words) > 0) {
  39. foreach ($search_words as $word){
  40. if (!empty($word)){
  41. $final_search_words[] = $word;
  42. }
  43. }
  44. }
  45.  
  46. $where_list = array();
  47. if(count($final_search_words) > 0 ) {
  48. foreach($final_search_words as $word){
  49. $where_list[] = "description LIKE '%$word%'";
  50. }
  51. }
  52. $where_clause = implode('OR' , $where_list);
  53.  
  54. if (!empty($where_clause)){
  55. $search_query .= "WHERE $where_clause";
  56.  
  57. }
  58.  
  59. $data = mysqli_query($dbc,$search_query);
  60.  
  61. while($row = mysqli_fetch_array($data)){
  62. echo $row['title'];
  63. }
  64.  
  65.  
  66. ?>
  67.  
  68. </body>
  69. </html>



Kod pobiera wyrazy z formularza, usuwa przecinki zastępując je spacjami. Następnie oddziela każdą spację i wrzuca wyrazy do tablicy. Później ma porównać wyrazy z danymi w bazie. Niestety po wywołaniu skryptu nic się nie dzieje. Nie pokazuje niczego. Gdzie popełniłem błąd?
ber32
Witam.
Prawdopodobnie na końcu zapytania
  1. WHERE $where_clause" or

zostaje "or"

sprawdź jeszcze tu
  1. $search_query="SELECT * FROM jobs";$search_query .= "WHERE $where_clause";

wydają się zrośnięte

  1. SELECT * FROM jobsWHERE $where_clause
Michalo1994
dziękuję. naprawione!
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.