Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kłopot z wyświetleniem wyniku zapytan
hans
post
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>
Go to the top of the page
+Quote Post
DeyV
post
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..."
Go to the top of the page
+Quote Post
hans
post
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];
}
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 Aktualny czas: 19.08.2025 - 04:13