dreamweb
18.05.2004, 18:21:17
Witam
Chcialbym wiedziec, czy w ogole jest mozliwe zwrocenie kilka razy wynikow z tego samego zapytania do bazy
czyli np.
[php:1:db314bd1c1]
$www=mysql_query("SELECT * FROM tabela");
while ($ww=mysql_fetch_array($www))
{
//kod programu
}
//i teraz ponownie to samo, bez zadawania ponownie tego samego zapytania
while($ww=mysql_fetch_array($www))
{
//jakis inny kod programu
}
[/php:1:db314bd1c1]
Czy jest to w ogole mozliwe??
Liko
18.05.2004, 18:51:30
Oczywiście, Jeżeli nie zmienisz wartości zmiennej WWW to powinno być dobrze i działać. Jeżeli natomiast zmienisz wartość zmiennej to już nie.
dreamweb
18.05.2004, 19:12:14
Witam
wlasnie o to chodzi, ze nie jest dobrze.
Zaraz po wykonaniu while-a, wartosci z $www znikaja (tak jak shift w tablicach)
Liko
18.05.2004, 19:48:27
Hmm. To mozesz przeciez przekazać do innej zmiennej ? np.
[php:1:fa8136267a]<?php
$www=mysql_query("SELECT * FROM tabela");
$ww2 = $www;
while ($ww=mysql_fetch_array($www))
{
//kod programu
}
//i teraz ponownie to samo, bez zadawania ponownie tego samego zapytania
while($ww=mysql_fetch_array($ww2))
{
//jakis inny kod programu
}
?>[/php:1:fa8136267a]
Możę zadziała bo nie mam okazji sprawdzić.
cboot
18.05.2004, 21:21:48
Nic z tych rzeczy. Nie możesz używać [manual:55a4d42088]mysql_fetch_array[/manual:55a4d42088]. Jeśli chcesz wielokrotnie użyć tego samego wyniku, to musisz skorzystać z [manual:55a4d42088]mysql_data_seek[/manual:55a4d42088] i [manual:55a4d42088]mysql_fetch_row[/manual:55a4d42088]:
[php:1:55a4d42088]<?php
$www = mysql_query("SELECT * FROM tabela");
$ilosc_wierszy = mysql_num_rows( $www );
for ($i = 0; $i < $ilosc_wierszy; $i++)
{
mysql_data_seek( $www, $i );
$wynik_1[] = mysql_fetch_row( $www );
}
for ($i = 0; $i < $ilosc_wierszy; $i++)
{
mysql_data_seek( $www, $i );
$wynik_2[] = mysql_fetch_row( $www );
}
?>[/php:1:55a4d42088]
EDIT: A właściwie prościej:
[php:1:55a4d42088]<?php
$www = mysql_query("SELECT * FROM tabela");
while ( $wynik_1[] = mysql_fetch_row( $www ) )
{
// operacje różne
}
mysql_data_seek( $www, 0 );
while ( $wynik_2[] = mysql_fetch_row( $www ) )
{
// operacje różne
}
?>[/php:1:55a4d42088]
dreamweb
19.05.2004, 16:29:33
Witam
Dzieki. Wlasnie o cos takiego mi chodzilo.
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.