Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Szukajka
napstergucio124
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 31.07.2008

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


Mam oto taki skrypt, tylko nie jest zrobiony tak jak by mi pasowało.. I jak by ktoś mogł coś podpowiedzieć bardzo bym był widzęczny.. A więc potrzebuje żeby wyniki wyszukania były na mojej stronie index.php naprzyklad w newsach itp. A nie na odzielnej stronie. I jak wynik sie znajdzie, to żeby automatczynie hiperłączył do danego newsa.

forma na index.php
[HTML] pobierz, plaintext
  1. <form action="search.php" method="post">
  2. Wpisz wyszukiwany produkt: <input type="text" name="phrase" />
  3. <input type="submit" value="Szukaj!" />
  4. </form>
[HTML] pobierz, plaintext

i search.php

  1. <?php //na katalogu 2
  2. // program wyszukiwarki - search.php
  3. // wy?wietlenie nagłówka
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5. // usunięcie niepotrzebnych białych znaków
  6. $_POST['phrase']=trim($_POST['phrase']);
  7. // sprawdzenie, czy użytkownik wpisał dane
  8. if(empty($_POST['phrase']))
  9. // je?li nie, to wy?wietl komunikat i zakończ działanie skryptu
  10. die('Formularz wypełniony niepoprawnie! Nie można wy?wietlić wyników wyszukiwania!');
  11. // je?li jednak dane s? wpisane poprawnie
  12. else
  13. {
  14. // poł?czenie z baz? danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH!
  15. $base=mysql_connect('sql','admin','haslo','baza');
  16. mysql_select_db("baza",$base);
  17. // skonstruowanie zapytania
  18. // zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ci?g w bazie danych
  19. // jak zapewne zauważyłe?, przed fraz? i po niej umieszczam znaki procenta %
  20. // ten znak symbolizuje dowolny inny ci?g znaków, więc jest niezbędny do skutecznego wyszukiwania
  21. // połaczenie operatorem Or pozwala na wyszukiwanie danego ci?gu zarówno w nazwie, jak i opisie produktu
  22. // UWAGA! Tutaj też nie zapomnij ustawić swoich danych!
  23. $query="Select nazwa_produktu From produkt Where nazwa_produktu Like '%{$_POST['phrase']}%'";
  24. // wysłanie zapytania do bazy danych
  25. $result=mysql_query($query,$base) or die(mysql_error());
  26. // ustalenie ilo?ci wyszukanych obiektów
  27. $obAmount=mysql_num_rows($result);
  28. // wyswietlenie ilo?ci wyszukanych obiektów
  29. echo'Znaleziono: '.$obAmount.'<br /><br />';
  30. // wy?wietlenie wyników w pętli
  31. for($x=0;$x<$obAmount;$x++)
  32. {
  33. // przekształcenie danych na tablicę
  34. $row=mysql_fetch_assoc($result);
  35. // wy?wietlenie numeru identyfikacyjnego
  36. echo $x+1;
  37. echo '. ';
  38. // wy?wietlenie nazwy produktu
  39. echo $row['pr_name'];
  40. echo'<br />';
  41. }
  42. }
  43. // zamknięcie poł?czenia
  44. mysql_close($base);
  45. // koniec aplikacji
  46. ?>





Ten post edytował napstergucio124 31.08.2009, 17:44:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Void
post
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Jeżeli chcesz, aby wyniki wyszukiwania pojawiały się na stronie index.php to po prostu tam musisz umieścić skrypt wyszukiwania (może być zaincludowany) i oczywiście w formularzu przekierowanie ustawić nie na "search.php" tylko "index.php". Do tego przydałoby się jakoś wykrywać, czy formularz został wysłany, żeby nie uruchamiać skryptu wyszukiwania za każdym razem. Jak to zrobić? Ustaw pole name przycisku submit na jakąś wartość i w skrypcie sprawdzaj, czy istnieje ta wartość ( isset($_POST['nazwa_submita']) ).
A co do drugiego problemu, to chodzi ci o automatyczne przekierowanie na daną stronę? Jeśli tak to: header.

@edit: @up: sekundy ;]

Ten post edytował Void 31.08.2009, 18:14:41
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 18:56