Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kłopot z wyświetleniem wyniku zapytan
Forum PHP.pl > Forum > Bazy danych > MySQL
hans
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>
DeyV
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.
hans
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];
}
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.