Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wyszukiwarka rekordów
Forum PHP.pl > Forum > Przedszkole
wabanek
Witam
Próbuje wygenerowac kod, w którym będę mógł wyszukac rekor, w moim przypadku skoczka i wypisac wszystkie dane o nim i do tego dane z innej tablicy (np. imie trenera z tablicy trener) mój kod daje mi tylko jeden wynik (np. imię)
  1. <?php //na katalogu 2
  2. echo'<h2>Wyniki wyszukiwania</h2>';
  3. if(empty($_POST['phrase']))
  4. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  5. else
  6. {
  7. $base=mysql_connect('localhost','root','');
  8. mysql_select_db("zawody",$base);
  9. $query="Select * From skoczek Where Imie Like '%{$_POST['phrase']}%'";
  10. $result=mysql_query($query,$base) or die(mysql_error());
  11. $obAmount=mysql_num_rows($result);
  12. echo'Znaleziono: '.$obAmount.'<br /><br />';
  13. for($x=0;$x<$obAmount;$x++)
  14. {
  15. $row=mysql_fetch_assoc($result);
  16. echo $x+1;
  17. echo '. ';
  18. echo $row['imie'];
  19. echo'<br />';
  20. }
  21. }
  22. mysql_close($base);
  23. ?>
  24.  
adam882
Nie wiem czy o to chodziło, ale w każdym razie trochę namieszałeś w kodzie
  1. <?php //na katalogu 2
  2. echo'<h2>Wyniki wyszukiwania</h2>';
  3. if(empty($_POST['phrase'])){die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');}
  4. else
  5. {
  6. $base=mysql_connect('localhost','root','');
  7. mysql_select_db("zawody",$base);
  8. $query='SELECT * FROM skoczek WHERE Imie LIKE "%'.mysql_real_escape_string($_POST['phrase']).'%"';
  9. $obAmount=mysql_num_rows($result);
  10. if($obAmount>0)
  11. {
  12. echo'Znaleziono: '.$obAmount.'<br /><br />';
  13. while($row=mysql_fetch_assoc($query))
  14. {
  15. echo $row['imie'].'<br />';
  16. }
  17. }
  18. else{echo 'brak';}
  19.  
  20.  
  21. }
  22. mysql_close($base);
  23. ?>

pisane z palca, nie wiem czy dziala
wabanek
wyskakuje mi błąd!

Notice: Undefined variable: result in C:\xampp\htdocs\search.php on line 9

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\xampp\htdocs\search.php on line 9
brak
Niktoś
mysql_num_rows($result);
A ten result to nie pusta zmienna ,bo nie widzę, aby gdzieś wcześniej była zadeklarowana.Czy ni powinno być:
mysql_num_rows($query) ?
Gość
Cytat(Niktoś @ 27.11.2011, 19:19:54 ) *
mysql_num_rows($result);
A ten result to nie pusta zmienna ,bo nie widzę, aby gdzieś wcześniej była zadeklarowana.Czy ni powinno być:
mysql_num_rows($query) ?



wyskakuje mi taki błąd

Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\xampp\htdocs\search.php on line 9
brak
adam882
Przepisałem kod nie zwracając uwagi, że mysql_num_rows jest zły. Powinno być być: mysql_num_rows($query);
kadlub
gdzie masz mysql_query?questionmark.gif

  1.  
  2.  
  3. $query=mysql_query('SELECT * FROM skoczek WHERE Imie LIKE "%'.mysql_real_escape_string($_POST['phrase']).'%"') or die(mysql_error());
  4. $obAmount=mysql_num_rows($query);
wabanek
Cytat(kadlub @ 27.11.2011, 20:03:57 ) *
gdzie masz mysql_query?questionmark.gif

  1.  
  2.  
  3. $query=mysql_query('SELECT * FROM skoczek WHERE Imie LIKE "%'.mysql_real_escape_string($_POST['phrase']).'%"') or die(mysql_error());
  4. $obAmount=mysql_num_rows($query);



Działa!!!, ale tak samo jak mój kot , który podałem wcześniej, w wyniku dostaje tylko jedną kolumnę (imię) a chce dostac wszystkie (imie, nazwisko, data_ur, waga zwrost itp) i jeszcze takie pytanie czy da radę dołączyc do wyniku dane z innej tabeli np. z tabeli trenerzy (trener) ?
wabanek
Nikt nie che sie podjąc wyzwania, czy w ogóle da radę połączyc dwie table w zapytaniu wyszukiwarki questionmark.gif?
kadlub
  1. echo $row['imie'].'<br />';


bo wyświetlasz samo imię jak dasz $row['nazwa kolumny w bazie danych'] to ci wyświetli dane z wybranej kolumny
a żeby wyświetlić np trenera danego skoczka który znajduje się w innej tabeli to musisz mieć jakoś te tabele powiązane ze sobą np w tabeli z trenerami mieć pole id_skoczek
Niktoś
Poczytaj o Union ALL
wabanek
Cytat(kadlub @ 27.11.2011, 22:46:52 ) *
  1. echo $row['imie'].'<br />';


bo wyświetlasz samo imię jak dasz $row['nazwa kolumny w bazie danych'] to ci wyświetli dane z wybranej kolumny
a żeby wyświetlić np trenera danego skoczka który znajduje się w innej tabeli to musisz mieć jakoś te tabele powiązane ze sobą np w tabeli z trenerami mieć pole id_skoczek



no przecież, myślisz że jak ułożę zapytanie połącze tabele kluczem to wyświetli wynik z dwóch tabel ?
kadlub
zrobiłeś tak jak mówiłem?
wabanek
Cytat(kadlub @ 28.11.2011, 20:55:16 ) *
zrobiłeś tak jak mówiłem?


tak, działa elegancko dzięki exclamation.gif!
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.