Strona 1 z 1

Problem z while :/

: czw lis 03, 2005 6:36 pm
autor: Balas
Gdy mam taki kod
[php]<?php
$sql = 'SELECT * FROM menu_blok WHERE pozycja="left"';
$zapytanie = mysql_query($sql);
while($wiersz = mysql_fetch_array($zapytanie))
{
echo $wiersz['title'];
echo '<br>';
}
?>[/php]

Wyswietla wszystko OK (Blok 1, Blok 2, Blok 3)


Gdy dodałem jeszcze 2 petle :

[php]<?php
$sql = 'SELECT * FROM menu_blok WHERE pozycja="left"';
$zapytanie = mysql_query($sql);
while($wiersz = mysql_fetch_array($zapytanie))
{
echo $wiersz['title'];
echo '<br>';

$sql = 'SELECT * FROM menu_link WHERE blok_id='.$wiersz['id'];
$zapytanie = mysql_query($sql);
while($wiersz = mysql_fetch_array($zapytanie))
{
echo $wiersz['nazwa'];
echo '<br>';
}
}
?>[/php]

Nie wyswietla pozostalych blokow :/ Czemu ?? (tak jakby petla juz nie przechodzila :/) W czym blad ?? Czy wogole tak mozna ??

Błędny kod

: czw lis 03, 2005 8:09 pm
autor: Krzysztof Gaudy
Witam !
... id='.$wiersz['id'];
W powyższym usuń apostrofy wokół id.

Najważniejsze jednak: zmień nazwy zmiennych w drugiej wewnętrznej pętli, na np. $zapytanie2, $sql2, $wiersz2. Powinno pomóc, daj znać czy o to chodziło. Wyświetla Ci się jakiś komunikat o błędzie?

Re: Problem z while :/

: czw lis 03, 2005 9:01 pm
autor: Balas
Teraz działa :) Nie pomyslalem ze to przez podwojone nazwy :D (bo tylko skopiowalem bezmyslnie od wyswietlania tytulu bo sie pisac nie chciało :) )

Zastępowanie zmiennych

: czw lis 03, 2005 9:05 pm
autor: Krzysztof Gaudy
Witam !

Po prostu pętla druga zastępowała nazwy zmiennych pętli pierwszej, przez co zamiast powtarzającego się zapytania pierwszego do bazy danych, miałeś cały czas zapytanie drugie w pętli pierwszej, które nie mogło być zrealizowane.