Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[PHP] Foreach działa tylko raz - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: [PHP] Foreach działa tylko raz (/thread-php-foreach-dziala-tylko-raz)



[PHP] Foreach działa tylko raz - sqvara - 27-09-2011

potrzebuje sporo zmian ciągów w moim mysql. żeby tego dokonać pisze skrypt który ma wyświetlić, rozbić ciągi, i pozamieniać na cyfry
nie będe tłumaczył, wstawie kod ;]

Kod PHP:
function whatdistrict($city) {$query  "SELECT * FROM location_city WHERE city = '$city'";
$result mysql_query($query)

    or die(
mysql_error());

while (
$row mysql_fetch_array($result)) {$district $row['district'];}
return 
$district;};

//koniec funkcji
$query2  "SELECT * FROM news_bezpieczenstwo ";
$result2 mysql_query($query2)
    or die(
mysql_error());
while (
$row2 mysql_fetch_array($result2)) {
$id $row2['ID'];
$places $row2['city'];

echo 
'>>>'.$id.'<<<<BR>';


$pieces explode(","$places);

print_r($pieces);echo'<br>';

foreach (
$pieces as $wioska)
{
$gmina whatdistrict($wioska);
echo 
$wioska.' > '.$gmina.'<br>';

};
echo 
'<br><br>';
}; 

ale pętla foreach wykonuje sie tylko raz..

oto fragment wyników :

Kod:
>>>873<<<
Array ( [0] => Krosno [1] => Rymanów [2] => Jedlicze )
Krosno > 1
Rymanów >
Jedlicze >


>>>874<<<
Array ( [0] => Krosno )
Krosno > 1


>>>875<<<
Array ( [0] => Rymanów [1] => Dukla [2] => Iwonicz [3] => Iwonicz-Zdrój [4] => Faliszówka [5] => Bzianka [6] => Węglówka )
Rymanów > 10
Dukla >
Iwonicz >
Iwonicz-Zdrój >
Faliszówka >
Bzianka >
Węglówka >


>>>878<<<
Array ( [0] => Krosno [1] => Odrzykoń [2] => Jedlicze [3] => Daliowa )
Krosno > 1
Odrzykoń >
Jedlicze >
Daliowa >

dlaczego foreach nie działa dla kolejnych wartości z tablicy $pieces?


RE: [PHP] Foreach działa tylko raz - Flake - 02-10-2011

Po 1. Pętla while a nie foreach Smile

Po 2.
Kod:
while ($row = mysql_fetch_array($result)) {$district = $row['district'];}

A nie jest tak, że pętla wykonuje się n razy ale niestety z racji zapisu $district = $row['district'] przy każdej iteracji NADPISUJESZ wynik?

Wrzuć przed while'a $district = array(); a później w pętli zamien $district = $row['district'] na $district[] = $row['district']

W ten sposób otrzymasz tablice tablic a nie ostatni wynik z zapytania Smile