Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Szukajka
napstergucio124
post 31.08.2009, 17:40:42
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
nmts
post 31.08.2009, 18:12:56
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 34
Dołączył: 21.03.2008

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


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.

Ten post edytował nmts 31.08.2009, 18:13:28


--------------------
Free Web Tools - narzędzia dla programistów, webdeveloperów i specjalistów seo...
Go to the top of the page
+Quote Post
Void
post 31.08.2009, 18:13:35
Post #3





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
napstergucio124
post 31.08.2009, 18:23:10
Post #4





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

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


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 ;/

Ten post edytował napstergucio124 31.08.2009, 18:30:24
Go to the top of the page
+Quote Post
Void
post 31.08.2009, 18:39:32
Post #5





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

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


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ć.
Go to the top of the page
+Quote Post
napstergucio124
post 31.08.2009, 18:55:34
Post #6





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

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


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.. :/
Go to the top of the page
+Quote Post
Void
post 31.08.2009, 19:04:11
Post #7





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

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


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
Go to the top of the page
+Quote Post
napstergucio124
post 31.08.2009, 19:11:43
Post #8





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

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


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 :/.

Ten post edytował napstergucio124 31.08.2009, 19:28:31
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: 24.07.2025 - 21:56