Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Szukajka
Forum PHP.pl > Forum > PHP
napstergucio124
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. ?>



nmts
Ustawiasz w formularzu action=index.php, w index.php includujesz search.php jeśli został przesłany formularz, tam się pojawią wyniki. Przekierowanie do newsa przez funkcje header.
Void
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 ;]
napstergucio124
acha ok dzięki to z indexem juz zrobiłem tylko nie bardzo czaje ten header... Dalibyście jakieś przykładowe kody prosze?? Może być na podstawie tego co tu mam tongue.gif. Chodzi mi oto że.. wpisuje news. Okej znalazł sie. Teraz chciałbym na niego kliknąć i do niego przejsc ale niemoge bo niemam hiperłącza ;/
Void
A, to o takie przekierowanie ci chodzi smile.gif To nie, zapomnij o headerze. Po prostu musisz stworzyć odnośnik do tego newsa w tym miejscu, gdzie w skrypcie wyszukiwania wyświetlane są wyniki. Chyba wiesz jak się tworzy linki w HTML ? smile.gif Nie wiem w jaki sposób wyświetlasz te newsy na stronie więc ciężko mi coś więcej podpowiedzieć.
napstergucio124
Newsy sa pisane na stronie nastepnie wysyłane do bazy z tytułem, kategorią, treścią i tak dalej... I własnie szukajke mam ustawioną na tytuł więc.. niewiem jak to zrobić w tytule odrazu i link dawać? Niewiem.. Może jak pisze tytuł newsa to dac mu odrazu link z łączem do niego w tym tytule??

np tak:

Tytuł newsa: <A HREF="link do newsa">jakiś tam tytuł</A>

Tylko utrudni mi to dodawanie newsów bo będe musiał sprawdzać jaki adress itp.. :/
Void
Cytat(napstergucio124 @ 31.08.2009, 19:55:34 ) *
Może jak pisze tytuł newsa to dac mu odrazu link z łączem do niego w tym tytule??

A jak planowałeś to inaczej zrobić? smile.gif

Rozumiem, że wyszukiwarka pobiera listę newsów odpowiadających zapytaniu i wyświetla na stronie listę ich tytułów? Jeśli tak to no to chyba oczywiste, że musisz z tego tytułu zrobić link. Nie wiem w jaki sposób utrudni ci to dodawanie newsów, skoro do bazy i tak dodajesz tylko tytuł, kategorie, treść itd., nie przechowujesz chyba bezwzględnego linku w bazie ?smile.gif
napstergucio124
Hmm.. No nic dzięki pewnie będe tak musiał to zrobić... smile.gif


Upss... Tylko że mam jeszcze jeden problem teraz z tym indexem... Jak dodam do skryptu isset($_POST['sk']) ) to wszystko mi sie zaczyna walić, dużo błędów i tak dalej na temat skryptu... a wczesniej dodałem do submita name="sk" no ale jakoś nie działa :/.
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.