Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][MYSQL]Wyszukiwarka
frykar
post 2.02.2009, 22:53:49
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


Witam, już kiedyś poruszyłem ten temat. Stworzyłem bazę w mysql. Baza to serwis komputerowy. Mam tablice dodaj_serwis. Problem polega na tym, ze chcem z tej bazy wyszukać jakiś rekord wprowadzając np. dane-klienta albo nazwe_serwisu. Oto skrypt:
  1. <TITLE>Wyszukiwanie</TITLE>
  2. </HEAD>
  3. <H1>Wyszukaj dane</H1>
  4. <P><strong></strong></P>
  5.  
  6. <ul>
  7. <li><a href="szukaj.php">Wedlug Nazwa_serwisu</a>
  8. </ul>
  9. </BODY>
  10. </HTML>


szukaj.php
  1. <?php
  2. $db_name = "rma";
  3. $table_name = "dodaj_serwis";
  4.  
  5. $connection = @mysql_connect("localhost", "root", "")
  6. or die("Brak polaczenia");
  7.  
  8. $db = @mysql_select_db($db_name, $connection)
  9. or die("Wybor nieudany");
  10.  
  11. $sql = "SELECT * FROM 'dodaj_serwis' ORDER BY 'Nazwa_serwisu';";
  12.  
  13. $result = @mysql_query($sql, $connection)
  14. or die("Zapytanie nieudane");
  15.  
  16. while ($row = mysql_fetch_array($result))
  17. {
  18.  $Nazwa_serwisu = $row['nazwa_serwisu'];
  19.  $Telefon = $row['telefon'];
  20.  $Nr_seryjny = $row['nr_seryjny'];
  21.  $Data_zakupu = $row['data_zakupu'];
  22.  $Dlugosc_gwarancji = $row['dlugosc_gwarancji'];
  23.  $Rodzaj_serwisu = $row['rodzaj_serwisu'];
  24.  $Data_realizacji = $row['data_realizacji'];
  25.  $Dane_klienta = $row['dane_klienta'];
  26.  $Opis_problemu = $row['opis_problemu'];
  27.  
  28.  $display_block .= " <P><strong>$Nazwa_serwisu</strong> - $Telefon<br>
  29.                      <em>Nr_seryjny: $Nr_seryjny</em> Dane_klienta: $Dane_klienta</P>
  30.                    ";
  31.  
  32. }
  33. ?>


  1. <TITLE>Wyszukiwanie</TITLE>
  2. </HEAD>
  3. <H1>Wyszukano</H1>
  4.  
  5. <?php echo "$display_block"; ?>
  6.  
  7. <P><a href="menu.html">Powrot do menu</a></P>
  8. </BODY>
  9. </HTML>


Jestem prawie pewny ze problem jest tutaj:
  1. <?php
  2. $display_block .= " <P><strong>$Nazwa_serwisu</strong> - $Telefon<br>
  3.                      <em>Nr_seryjny: $Nr_seryjny</em> Dane_klienta: $Dane_klienta</P>
  4.                    ";
  5. ?>


Jak to rozwiazac. PHP nie jest moja mocna strona (dopiero zaczynam). Jak ewentualnie poprawic ten kawałek kodu. Dzieki.
Go to the top of the page
+Quote Post
erix
post 2.02.2009, 23:01:43
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jestem prawie pewny ze problem jest tutaj:

Prawie oznacza wielką różnicę. winksmiley.jpg

A wyszukiwanie powinieneś zrealizować tu:
  1. <?php
  2. $sql = "SELECT * FROM 'dodaj_serwis' ORDER BY 'Nazwa_serwisu';";
  3. ?>

Poczytaj o słówku WHERE, formularzach PHP i liźnij ciut podstaw, bo będzie nam się ciężko dogadać.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
frykar
post 2.02.2009, 23:06:17
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


Podstawy znam bo bym kodu nie napisałsmile.gif. Co do zapytania to jest dobre bo tak chcem żeby szukało. (jak cos zmienie to napisze) Problem jest tylko z tym wyswietleniem danych czyli jak pisałem z poleceniem display_block
Go to the top of the page
+Quote Post
erix
post 2.02.2009, 23:10:17
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Co do zapytania to jest dobre bo tak chcem żeby szukało. (jak cos zmienie to napisze) Problem jest tylko z tym wyswietleniem danych czyli jak pisałem z poleceniem display_block

:
Cytat
tym, ze chcem z tej bazy wyszukać jakiś rekord wprowadzając np. dane-klienta albo nazwe_serwisu. Oto skrypt:


Wybacz, ale nie czytam w myślach. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
frykar
post 3.02.2009, 17:38:21
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


To dobrze że nie czytasz w myslach:).Oki napisze jeszcze raz o co mi chodzi. Jak piasalem mam baze o nazwie rma. Tam jest tabela dodaj_serwis z kilkoma kolumnami( m.in. nazwa_serwisu i dane_klienta). Chcem zrobic wyszukiwarke, która bedzie wyszukiwala mi z tej bazy wszyskie rekordy, gdy np. na stronie wyszukujacej wpisze nazwe_serwisu (dla przykladu: wpisuje Geforce 7600GT i wyswietlaja mi sie wszyskie rekordy gdzie jest to 'haslo' czyli Geforce 7600GT). Czy teraz jest to jasniejsze??
Go to the top of the page
+Quote Post
wolguy
post 3.02.2009, 17:50:38
Post #6





Grupa: Zarejestrowani
Postów: 219
Pomógł: 10
Dołączył: 9.01.2005

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


W tym pierwszym pliku musi być jakiś formularz. Gdzie użytkownik ma podać dane, których szuka? Wysyłasz formularz np. przez POST, odczytujesz te dane z tablicy $_POST i do zapytania SELECT * FROM 'dodaj_serwis' dodajesz WHERE costam = cosinnego.
Go to the top of the page
+Quote Post
erix
post 3.02.2009, 17:52:12
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Chcem

Ja nie chcę, to czemu piszesz prawie "chcemy"? tongue.gif http://sjp.pwn.pl/lista.php?co=chc%EA

Cytat
gdy np. na stronie wyszukujacej wpisze nazwe_serwisu (dla przykladu: wpisuje Geforce 7600GT i wyswietlaja mi sie wszyskie rekordy gdzie jest to 'haslo' czyli Geforce 7600GT). Czy teraz jest to jasniejsze??

http://forum.php.pl/index.php?showtopic=11...st&p=566460 winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
frykar
post 3.02.2009, 18:01:40
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


Erix nie chcesz to nie pomagaj. A te Twoje posty nic nie dają. Co zbierasz punkty?
Go to the top of the page
+Quote Post
erix
post 3.02.2009, 18:04:10
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie zbieram punktów. A gdybyś odrobinę pogłówkował, to byś wpisał WHERE do wyszukiwarki i znalazł setki stron, które wyjaśniają użycie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
isso
post 3.02.2009, 19:24:10
Post #10





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


Poza tym... polecam dowiedzieć się o tym jak używać instrukcji LIKE dla zapytań SQL, dlaczego? jak przeczytasz to się dowiesz... i na pewno kiedyś zrozumiesz, że to potrzebne smile.gif i przydatne


--------------------
Go to the top of the page
+Quote Post
frykar
post 3.02.2009, 22:06:34
Post #11





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


Troche poczytałem i powalczyłem. Napisałem cos takiego, ale dalej rezultat nie jest zadowalajacy.
  1. <?php
  2. // program wyszukiwarki - search.php
  3.  
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5.  
  6. $_POST['phrase']=trim($_POST['phrase']);
  7.  
  8. if(empty($_POST['phrase']))
  9.  
  10. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  11.  
  12.  
  13. else
  14. {
  15.  
  16. $base=mysqli_connect("localhost","root","krasnal","rma");
  17.  
  18. $query="Select  From dodaj_serwis Where Nazwa_serwisu Like '%{$_POST['phrase']}%' Or Dane_klienta Like '%{$_POST['phrase']}%'";
  19.  
  20. $result=mysqli_query($base,$query);
  21.  
  22. $obAmount=mysqli_num_rows($result);
  23.  
  24. echo'Znaleziono: '.$obAmount.'<br /><br />';
  25.  
  26. for($x=0;$x<$obAmount;$x++)
  27. {
  28.  
  29. $row=mysqli_fetch_assoc($result);
  30.  
  31. echo $x+1;
  32. echo '. ';
  33.  
  34. echo $row['Nazwa_serwisu'];
  35. echo'<br />';
  36. }
  37. }
  38.  
  39. mysqli_close($base);
  40.  
  41. ?>
Go to the top of the page
+Quote Post
erix
post 3.02.2009, 22:09:50
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
ale dalej rezultat nie jest zadowalajacy.

To znaczy? Sory, ale szklana kula mi się właśnie roztrzaskała... ;/


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
isso
post 3.02.2009, 22:10:05
Post #13





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


no tak, ale co sie dzieje? bo wlasciwie ciezko powiedziec co jest nie tak - powiedz gdzie blad w tym co teraz masz... tzn nie wypisuje sie? czy jak?


--------------------
Go to the top of the page
+Quote Post
frykar
post 3.02.2009, 22:20:33
Post #14





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


Teraz zobaczyłem, że mam
Kod
mysqli
zamiast
Kod
mysql


Oto poprawiony skrypt:
  1. <?php
  2.  
  3. echo'<h2>Wyniki wyszukiwania</h2>';
  4.  
  5. $_POST['phrase']=trim($_POST['phrase']);
  6.  
  7. if(empty($_POST['phrase']))
  8.  
  9. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  10.  
  11. else
  12. {
  13. $base=mysql_connect("localhost","root","krasnal","rma");
  14.  
  15. $query="Select  From dodaj_serwis Where Nazwa_serwisu Like '%{$_POST['phrase']}%' Or Dane_klienta Like '%{$_POST['phrase']}%'";
  16.  
  17. $result=mysql_query($base,$query);
  18.  
  19. $obAmount=mysql_num_rows($result);
  20.  
  21. echo'Znaleziono: '.$obAmount.'<br /><br />';
  22.  
  23. for($x=0;$x<$obAmount;$x++)
  24. {
  25.  
  26. $row=mysql_fetch_assoc($result);
  27.  
  28. echo $x+1;
  29. echo '. ';
  30. echo $row['nazwa_serwsiu'];
  31. echo'<br />';
  32. }
  33. }
  34. mysql_close($base);
  35. ?>


błędy, które pokazuje są w tym miejscu:
  1. <?php
  2. $result=mysql_query($base,$query);
  3.  
  4. $obAmount=mysql_num_rows($result);
  5. ?>


Nie pokazuje wyników wyszukiwania. PS erix świetne teksty, chociaż się pośmieje robiąc bazę.

Pojawiają się takie błędy:
Warning: mysql_query(): supplied argument is not a valid MySQL
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result

Ten post edytował frykar 3.02.2009, 22:41:44
Go to the top of the page
+Quote Post
erix
post 3.02.2009, 22:21:16
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A nie pomyliłeś przypadkiem parametrów? winksmiley.jpg Zobacz, co w manualu jest na ten temat.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
frykar
post 5.02.2009, 18:18:16
Post #16





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.01.2009

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


Dzieki, ale juz zrobilem. Troche inaczej, ale najwazniejsze ze dziala.

Ten post edytował frykar 5.02.2009, 19:21:23
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: 16.06.2025 - 21:52