Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bardzo dziwny problem - pytanie
ultra_18
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 30.10.2008

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


Witam, zadałem zapytanie do bazy i otwrzymałem wynik w moim przypadku
$wiersz[0] i $wiersz[1] każdy z nich ma dokładnie 4 wartości, mój problem wyglada nastepująco:

gdy kod wyglada tak :

CODE
for ($licznik = 0; $wiersz = mysql_fetch_row($zapytanie); ++$licznik)
{
$tablica_xxx[$licznik] = $wiersz[0];
$tablica_yyy[$licznik] = $wiersz[1];
echo "$tablica_xxx[$licznik] - $tablica_yyy[$licznik]
";
}


wtedy wszystko gra wyświetla mi elegancko to co trzeba


ale kiedy zapisuje to tak :

CODE
for ($licznik = 0; $wiersz = mysql_fetch_row($zapytanie); ++$licznik)
{
$tablica_xxx[$licznik] = $wiersz[0];
$tablica_yyy[$licznik] = $wiersz[1];
}




for ($licznik = 0; $wiersz = mysql_fetch_row($zapytanie); ++$licznik)
{
echo "$tablica_xxx[$licznik] - $tablica_yyy[$licznik]
";
}

nic sie nie wyświetla , a gdy zapisuje w ten sposób :

CODE
for ($licznik = 0; $wiersz = mysql_fetch_row($zapytanie); ++$licznik)
{
$tablica_xxx[$licznik] = $wiersz[0];
$tablica_yyy[$licznik] = $wiersz[1];
}




for ($licznik = 0; count($tablica_xxx); ++$licznik)
{
echo "$tablica_xxx[$licznik] - $tablica_yyy[$licznik]
";
}


owszem wyświetla wyniki ale oprócz tego rozszerza mi strone aż do nieskończoności tak jak by petla nie była "domknieta"



Czemu tak sie dzieje, gdzie popelniłem błąd i jak to rozwiązać z góry dzieki za pomoc

Ten post edytował ultra_18 30.10.2008, 12:40:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pinochet
post
Post #2





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

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


drugim parametrem pętli for jest warunek wyjścia interpreter wykonuje instrukcję tam zawarta i sprawdza jej wartość: 0 - false cokolwiek innego true
twoje programy:
mają:
  1. <?
  2. for ($licznik = 0; $wiersz = mysql_fetch_row($zapytanie); ++$licznik) {
  3. }
  4. ?>

interpreter przed każdym przebiegiem pętli wykonuje:
$wiersz = mysql_fetch_row($zapytanie);
mysql_fetch_row zwraca jakiś resource który jest po zrzutowaniu równy true - różny od zera albo false gdy przejżysz juz wszystki wiersze(z dokumentacji), wtedy oczywiście warunek wyjścia jest spełniony i pętla się przerywa
jeżeli po tym zapisie znowu wykonasz mysql_fetch_row na tej samej zmiennej - funkcja zwroci false i wogole nie wejdzie do drugiej pętli

jesli chodzi o pętle z count
count zwraca wartośc liczbową równą ilości elementów w tablicy = jeżeli ilość tych elementów jest różna od zera wartosc po zrzutowaniu będize true i pętla wykona kolejny obieg. Można używać count tak jak ty to użyłeś na początku ale wtedy warto by było gdzieś w pętli usuwac kolejne elementy tablicy np array_pop

Polecam manual: for, mysql_fetch_row, count ;-) abys rozumiał co piszesz
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 05:49