While döngüsü genel olarak bir şart sağlanıncaya kadar belirlenen bir işlemin tekrar etmesidir, ama bu ne işimize yarayacak dersek örneklerde açıklayalım
Öncelikle while döngüsünün genel yapısını yazalım
while(şart)
{
echo "....";
//her hangi bir kod
}
Burada şart kısmına sonucu boolean (doğru veya yanlış) olan bir ifade yazılır, örneğin a<9 veya a==b gibi bir şart yazılır, bu şart sağlanmıyorsa iki süslü parantez arasındaki kodlar yürütülür, eğer sağlanıyorsa döngü biter
İki süslü parantez arasına da istediğimiz bir kodu yazabiliriz.
Php ile while döngüsünde en basit şu örnek verebiliriz
<?
$a=0;
while ($a<10) {
echo $a."<br>";
$a++;
}
?>
Bu aslında basit bir örnektir ve sadece 1 den 10 a kadar (10 hariç,çünkü 10 olduğunda döngü durur ve aradaki kod işletilmez) olan sayıları ekrana alt alta yazar.
Php ile while döngüsünü en çok veritabanı işlemlerinden kullanırız.
Mysql üzerinden veri çekerken bu verileri ekrana yazdırmak için while döngüsünü kullanabiliriz.
Mysql ile veri çekme konusuna henüz girmediğimiz için detaylı açıklamayacağım ama kesinlikle veritabanı işlemlerinde somut olarak bir işe yaradığını göreceksiniz.Yoksa ekrana 1 den 10 a kadar sayıları yazdırmak için böyle bir döngünün ne gereği var.
Şimdi bu örneği verelim.
<?
//veritabanına bağlanıyoruz
mysql_connect("localhost","root","12345678");
//üzerinde işlem yapacağımız veritabanını seçiyoruz
mysql_select_db("dergi");
//basit bir sql sorgusu, user tablosundan id ve kullanıcı adlarını çeken bir sorgu
$sorgu=mysql_query("select id,username from user");
//burdan sonrası ise gelen verileri istediğimiz formatta yazdırmak, açıklamalar aşağıda
while ($satir=mysql_fetch_array($sorgu))
{
$username=$satir["username"];
$userId=$satir["id"];
echo "$userId -> $username <br>";
}
?>
Öncelikle şunu belirteyim mysql_query fonksiyonu çalıştığında direk veri getirmez, sorgunun sonuçlarını satır sayısını sütun sayısını falan aktarır. Bunlar bir nesne olarak geri döner.
Bu örnek kodda $sorgu nesnedir ve direk veri değildir. Bu nesne içinden satırları tek tek çekmemiz gerekir ve bu normalde zor olur bunun yerine while döngüsü işimizi kolaylaştıracaktır
while ($satir=mysql_fetch_array($sorgu)) satırı kilit noktadır ve açıklaması şöyledir. "veritabanı sorgu nesnesinden satır çekebildiğin sürece çalış ve satırı $satir değişkenine at"
Bu sayede satır okuyabildiğimiz sürece $satir dizisi oluşur ve içinde o anki kayda ait id ve kullanıcı adı tutulur, sonrası ise süslü parantezler içinde temel php işlemleri ile yazdırmaktır.









SAMET TEMİZER
Hangi php editörünü kullanıyorsunuz
