-
Üyelik
07.10.2013
-
Yaş/Cinsiyet
26 / E
-
Meslek
Bilgisayar Programcısı
-
Konum
Giresun
-
Ad Soyad
M** E**
-
Mesajlar
648
-
Beğeniler
181 / 81
-
Ticaret
5, (%100)
Neden bu PHP, return kodunu düzgün çalıştırmıyor? Neden sorunlu?
for($i = 0; $i < count($roles); $i++)
{
$query = $db->query("SELECT * FROM userroles WHERE id = '$roles[$i]'")->fetch(PDO::FETCH_ASSOC);
$roleview = $query["view"];
$text = $text . "$roleview ";
echo($text);
}
Bunu yazınca düzgün çalışıyor, 2 kez döndürüyor.
for($i = 0; $i < count($roles); $i++)
{
$query = $db->query("SELECT * FROM userroles WHERE id = '$roles[$i]'")->fetch(PDO::FETCH_ASSOC);
$roleview = $query["view"];
$text = $text . "$roleview ";
return($text);
}
Bunu yazınca 1 kez döndürüyor. Return neden for döngüsünü düzgün çalıştırmıyor?
-
Üyelik
14.01.2018
-
Yaş/Cinsiyet
52 / E
-
Meslek
Programcı
-
Konum
İzmir
-
Ad Soyad
S** S**
-
Mesajlar
319
-
Beğeniler
4 / 111
-
Ticaret
0, (%0)
Çünkü return dediğin anda fonksiyon işi bitirip verdiğin değişkeni döndürür.
$count = count($roles); // For loopunda count size of çalıştırılmaz. 100 satırlık array için 100 defa aynı fonksiyonu çağırırsın.
$in = [];
for($i = 0; $i < $count ; $i++) {
array_push($in,$roles[$i]); // Concat yani $hede." ".$hodo işleri array yapıp toplamaktan pahalıya gelir.
}
$out = [];
$result = $db->query("SELECT * FROM userroles WHERE id IN (".implode(',',$in).")")->fetch(PDO::FETCH_ASSOC); // Sql sogularını minimize etmek istiyoruz. loop içinde sql çağrısı yapılmaz. 100 tane eleman olsa çökerttin sunucuyu.
foreach($result as $res) {
array_push($out,$res["view"]);
}
return implode(" ",$out);
fetch ten sonra objemi dönüyor arraymı hatırlayamadım. Onun için test et. Olmaz ise çıkan hata mesajları ni forma yaz bakalım
1 kişi bu mesajı beğendi.