15 Mart 2012, 16:05 | #1 |
Mesajlar: n/a
| foreach döngüsü
php ile dinamik sayfalar oluştururken kullanılan terimlerden biri foreach kullanımına dair bir kaç örnek vericek olursak.. herhangi bir dizideki elemanları her biri için döngüye sokuyoruz. PHP- Kodu: <?php $zurna = array("davul", "zurna", "ayva", "ankara"); foreach($zurna as $kanallar) { echo $kanallar; } ?> Öncelikle $zurna gibi bir değişken oluşturduk ve içine dizi elemanlarını yerleştirdik. Bu mysql veri tablolarından çekeceğiniz bir dizide olabilir. daha sonrasında $zurna adlı değişkenimizi foreach'le $kanallar adlı değişkene atadık ve echo komutuyla yazdırmamsını söyledik.. bu komutu verdiğimizde alacağımız sonuç davulzurnaayvaankara olacaktır.. çok mantıksız gözükebilir. dizi içindeki elemanları yanyana bitişik bir şekilde sıraladı ne yararı olabilir ki? bunu şekillendirmek elinizde tabi.. kodda ufak değişiklikler yapıyoruz. PHP- Kodu: Global Kanallar: <br/> <?php $zurna = array("davul", "zurna", "ayva", "ankara"); foreach($zurna as $kanallar) { echo '#'.$kanallar.'<br/>'; } ?> bu komutu çalıştırdığınızda alacağınız sonuç aşağıdaki gibidir. Global Kanallar: #davul #zurna #ayva #ankara birçok kullanım çeşiti var tabiki bu onlardan sadece bir tanesiydi.. |
15 Mart 2012, 16:05 | #2 |
Mesajlar: n/a
| Cevap: foreach döngüsü
Üstte kullandığımız foreach döngüsünü biraz şekillendirmek istersek "if" "elseif" ve "else" komutlarını kullanabilir bir örnekle gösterecek olursak. PHP- Kodu: Global Kanallar: <br/> <?php $zurna = array("davul", "zurna", "ayva", "ankara"); foreach($zurna as $kanallar) { if($kanallar=="zurna") { echo '<br/>#'.$kanallar.'<br/>'; echo 'Founder: SagopaKajmer<br/>'; echo 'Ortalama Kullanici: 900<br/><br/>'; } elseif($kanallar=="ayva") { echo '<br/>#'.$kanallar.'<br/>'; echo 'Founder: Kolera<br/>'; echo 'Ortalama Kullanici: 100<br/><br/>'; } else { echo '#'.$kanallar.'<br/>'; } } ?> Daha önce yaptığımız işlemin aynısını yapıyor ama bu sefer koşullara bağlıyoruz. "if" komutuyla eğer $kanallar dizisi içinden "zurna" kanalı seçilirse alttaki bilgileri yazmasını yine "elseif" komutuyla $kanallar dizisi içinden "ayva" kanalı seçilirse altta yazan bilgileri getirmesi gerektiğini en sonundada "else" komutuyla bu belirttiğimiz herhangi bir kanal seçili değilse işlemin normal seyrinde devam etmesini söylüyoruz.. komutu çalıştırdığımızda sonuç aşağıdaki gibidir. Global Kanallar: #davul #zurna Founder: SagopaKajmer Ortalama Kullanici: 900 #ayva Founder: Kolera Ortalama Kullanici: 100 #ankara Biz elle girerek en sade biçiminde listelettik sayfaları, bu veritabanından sonsuz sayıda çekilen bir kanal listesi ve açıklama listeside olabilir. veritabanına kanal tablosuna ne kadar kanal girilirse foreach döngüsü herhangi bir limitle sınırlandırmadığı sürece bütün kanalları listeyecektir.. |
15 Mart 2012, 16:05 | #3 |
Mesajlar: n/a
| Cevap: foreach döngüsü
Koşulları biraz daha deneyecek olursak bu örnek üzerinde PHP- Kodu: Global Kanallar: <br/> <?php $zurna = array("davul", "zurna", "ayva", "ankara"); $i=1; foreach($zurna as $kanallar) { echo '#'.$kanallar.'<br/>'; if($i%3==0) { echo '<a href="#">Daha Fazlasi icin tiklayin</a>'; break; } $i++; } ?> Daha önce kullandığımız foreach döngüsünün hemen üstünde $i değişkenini 1 olarak atadık.. Daha sonrasında foreach döngüsünün iç kısmında if($i%3==0) diyerek eğer kanallar listelendiğinde listedeki kanal sayısı 3'e bölünebiliyorsa if'in içindeki fonksiyonu yapmasını sağlıyoruz. Yani 3 tane kanal saydıktan sonra sistem if'in içine bağladığımız fonksiyonu çalıştıracak.. $kanallar listesinde normalde 4 kanalımız var bu şekilde yaptığımızda 3. kanaldan sonra if'in içindeki komutu çalıştırıp 4. kanaldan devam etmesi gerekir.. Bunu engellemek içinde break; parametresini çağırıyoruz ve foreach döngüsünü sonlandırıyoruz.. Komutun çıktısı Global Kanallar: #davul #zurna #ayva |
Bookmarks |
Etiketler |
döngüsü, foreach |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |