Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem przy tworzeniu wyszukiwarku
Michalo1994
post 6.09.2013, 17:29:25
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 3.02.2009

Ostrzeżenie: (20%)
X----


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?
Go to the top of the page
+Quote Post
ber32
post 6.09.2013, 19:08:46
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 22
Dołączył: 6.07.2010

Ostrzeżenie: (0%)
-----


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


Ten post edytował ber32 6.09.2013, 19:23:08


--------------------
Go to the top of the page
+Quote Post
Michalo1994
post 6.09.2013, 19:26:54
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 3.02.2009

Ostrzeżenie: (20%)
X----


dziękuję. naprawione!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 09:12