Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ponowne wyniki z zapytania
dreamweb
post 18.05.2004, 18:21:17
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 13.03.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Liko
post 18.05.2004, 18:51:30
Post #2





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
dreamweb
post 18.05.2004, 19:12:14
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 13.03.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam

wlasnie o to chodzi, ze nie jest dobrze.

Zaraz po wykonaniu while-a, wartosci z $www znikaja (tak jak shift w tablicach)
Go to the top of the page
+Quote Post
Liko
post 18.05.2004, 19:48:27
Post #4





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
cboot
post 18.05.2004, 21:21:48
Post #5





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post
dreamweb
post 19.05.2004, 16:29:33
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 13.03.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam

Dzieki. Wlasnie o cos takiego mi chodzilo.
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:56