![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 6.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem wysyłam do bazy zapytanie np. "show databases".
Funkcja mysql_num_rows zwraca mi liczbę 6. Następnie używam funkcję mysql_fetch_rows która zwraca wynik w wierszach. Ale na stronie www pojawia mi się tylko pierwszy wiersz a następne są pustymi pozycjami. Próbowałem w ten sposób wyświetlić tablice konkretnej bazy danych, i wynik był identyczny wyświetlało mi tylko pierwszy wiersz, a pozostałe były puste. Poniżej jest kod: -strona www test.php: <td><select name="wybor_bazy"> <?php $twynik= new TMySql(); $twynik->show_bazy("databases");?> </select> </td> -klasa TMySql.php{ function show_bazy($nazwa_elementu_bazy) { $this->connect_db("root",""); $zapytanie_db="show ".$nazwa_elementu_bazy.";"; $wynik= mysql_query($zapytanie_db); $this->wynik_db($wynik); $iilosc_znalezionych = mysql_num_rows($wynik); $twiersz=mysql_fetch_row($wynik); $this->ilosc_wierszy($iilosc_znalezionych,$twiersz); } function ilosc_wierszy($ilosc_znalezionych,$wiersz) { for($i=0; $i <= $ilosc_znalezionych;$i++) { echo "<option>".$wiersz[$i]; } } } Wynik na stonie www <td><select name="wybor_bazy"> <option>administracja<option><option><option><option><option><option> </select> </td> |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Błędnie używasz funkcji $twiersz=mysql_fetch_row($wynik);
Funkcja ta zwraca właśnie 1 wiersz z zapytania, stąd taki efekt. Przy tej konstrukcji programu do funkcji ilosc_wierszy powinieneś przesyłać identyfikator wyniku, a dopiero w funkcji, w pętli [np. while($twiersz=mysql_fetch_row($wynik) )] odczytywać kolejne wiersze z wyniku. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 6.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Błędnie używasz funkcji $twiersz=mysql_fetch_row($wynik);
Funkcja ta zwraca właśnie 1 wiersz z zapytania, stąd taki efekt. Przy tej konstrukcji programu do funkcji ilosc_wierszy powinieneś przesyłać identyfikator wyniku, a dopiero w funkcji, w pętli [np. while($twiersz=mysql_fetch_row($wynik) )] odczytywać kolejne wiersze z wyniku. Dzięki za pomoc. Pomogło gdy zrobiłem tak jak napisałeś. while($wiersz=mysql_fetch_row($swynik)) { echo "<option>".$wiersz[$i=0]; $i++ ; } Ale zastanawiam się jeszcze dlaczego nie działa taka pętla. for($i=0; $i<= $ilosc_znalezionych;$i++) { $wiersz=mysql_fetch_row($swynik); echo "<option>".$wiersz[$i]; } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:13 |