Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

While döngüsü .

codegenerator

0
Onaylı Üye
Üye
Katılım
9 Mart 2011
Mesajlar
314
Açılan Konu
11
Tepki puanı
3
Konum
Ankara
Merhaba arkadaşlar,

Sabahtan beri çalışmaktan kafam uçtu heralde. Sizlere soruyorum şimdi .

PHP:
		<td width="32" height="17">:</td>
		<td width="465" height="17" valign="top">
		<select size="1" name="magazin_kategori">
EOF;
while($row= mysql_fetch_assoc(mysql_query("SELECT * FROM kategori ORDER BY id"))) {
	echo "<option> ".$row['kategori_adi']."</option>";		
	
		}
echo <<<EOF
<option selected>Seçiniz</option>
		</select></td>
	</tr>
	<tr>
		<td width="2


Kodun bir kısmını yazdım arkadaşlar .While sonsuzda dönüyor ? Neden ?
 
E

Erturk

Misafir
Bu şekilde değiştirin.

PHP:
<td width="32" height="17">:</td> 
        <td width="465" height="17" valign="top"> 
        <select size="1" name="magazin_kategori"> 
EOF; 

$cek = mysql_query("SELECT * FROM kategori ORDER BY id");
while($row= mysql_fetch_assoc($cek)) { 
    echo "<option> ".$row['kategori_adi']."</option>";         
     
        } 
echo <<<EOF 
<option selected>Seçiniz</option> 
        </select></td> 
    </tr> 
    <tr> 
        <td width="2
 

codegenerator

0
Onaylı Üye
Üye
Katılım
9 Mart 2011
Mesajlar
314
Açılan Konu
11
Tepki puanı
3
Konum
Ankara
Erturk hocam ikisi araında ne gibi fark oluyor ? değişkenle aktarmada
 
E

Erturk

Misafir
Hiçbir fark olmuyor. El ve göz alışkanlığı sadece :)

Sonsuz döngünün bu koddan kaynaklandığına eminsin ama dimi ?
 

codegenerator

0
Onaylı Üye
Üye
Katılım
9 Mart 2011
Mesajlar
314
Açılan Konu
11
Tepki puanı
3
Konum
Ankara
Hiçbir fark olmuyor. El ve göz alışkanlığı sadece :)

Sonsuz döngünün bu koddan kaynaklandığına eminsin ama dimi ?

Eminim hocam sizin verdiğiniz tarzda yaptım . Değişkene aktardım . Sorun çözüldü . Zaten sayfanın içinde 1 tane döngü var :)
 
E

Erturk

Misafir
Şu ana kadar hiç ilk yaptığın şekilde denememiştim. Mantıken sorun yaratmaması gerekiyor. El ve göz alışkanlığından dolayı sorguyu devamlı bir değişkene aktarıyorum. Demek ki while içerisinde kullanınca sorun yaratıyormuş ve bir fark varmış :) Bu sayede bunuda öğrenmiş olduk...

Sorunun çözüldüğüne sevindim.
 

codegenerator

0
Onaylı Üye
Üye
Katılım
9 Mart 2011
Mesajlar
314
Açılan Konu
11
Tepki puanı
3
Konum
Ankara
Şu ana kadar hiç ilk yaptığın şekilde denememiştim. Mantıken sorun yaratmaması gerekiyor. El ve göz alışkanlığından dolayı sorguyu devamlı bir değişkene aktarıyorum. Demek ki while içerisinde kullanınca sorun yaratıyormuş ve bir fark varmış :) Bu sayede bunuda öğrenmiş olduk...

Sorunun çözüldüğüne sevindim.

Teşşekkür ederim ilgin için. Benimde ilk defa karşılaştığım bir durumdu . Sorunun bu sebebten kaynaklandığı aklımın ucundan bile geçmemişti.
 

Lansewebtr

0
Onaylı Üye
Üye
Katılım
30 Aralık 2010
Mesajlar
256
Açılan Konu
8
Tepki puanı
3
Şu ana kadar hiç ilk yaptığın şekilde denememiştim. Mantıken sorun yaratmaması gerekiyor. El ve göz alışkanlığından dolayı sorguyu devamlı bir değişkene aktarıyorum. Demek ki while içerisinde kullanınca sorun yaratıyormuş ve bir fark varmış :) Bu sayede bunuda öğrenmiş olduk...

Sorunun çözüldüğüne sevindim.

Ben hep harf harf tamamını el le yazdığım için değişkene atamadan yazardım. ama hata alıp makina zorla düzelttire düzelttire alıştım. doğrusu değişkenli olan. fark olmaması lazım gibi görünüyo ama fark var.
 

Angelo

0
Onaylı Üye
Üye
Katılım
13 Aralık 2004
Mesajlar
9,603
Açılan Konu
164
Tepki puanı
106
Konum
AZ
While (X KOSUL Y) dizgesinde, "X koşul Y" kontrolü her adımda çalıştırılır. Dolayısıyla her adımda, mysql_query() çağrılıyor ve her seferinde mysql_query ve fetch_row başarılı olduğu için sonsuza kadar uzuyor. Açıklaması bu.
 

codegenerator

0
Onaylı Üye
Üye
Katılım
9 Mart 2011
Mesajlar
314
Açılan Konu
11
Tepki puanı
3
Konum
Ankara
While (X KOSUL Y) dizgesinde, "X koşul Y" kontrolü her adımda çalıştırılır. Dolayısıyla her adımda, mysql_query() çağrılıyor ve her seferinde mysql_query ve fetch_row başarılı olduğu için sonsuza kadar uzuyor. Açıklaması bu.

Yabancı sayfalardada buna benzer bir şeyler vardı. Değişkenle aktardığımızda orada yine X KOSUL Y ifadesi olmuş olmuyormu.
 

Angelo

0
Onaylı Üye
Üye
Katılım
13 Aralık 2004
Mesajlar
9,603
Açılan Konu
164
Tepki puanı
106
Konum
AZ
Adım 1: mysql_query() -> mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et.
Adım 2: mysql_query() -> mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et
Adım 3: mysql_query() -> mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et
..sonsuz..

Oysa mysql_query() while'ın dışındaysa


Adım 1: mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et.
Adım 2: tüm fetch_row döndürüldü, FALSE -> break.

Birinci durumda, her adımda mysql_query() yenilendiği için yeni veri seti geliyor sürekli.
 

codegenerator

0
Onaylı Üye
Üye
Katılım
9 Mart 2011
Mesajlar
314
Açılan Konu
11
Tepki puanı
3
Konum
Ankara
Adım 1: mysql_query() -> mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et.
Adım 2: mysql_query() -> mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et
Adım 3: mysql_query() -> mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et
..sonsuz..

Oysa mysql_query() while'ın dışındaysa


Adım 1: mysql_fetch_row() -> eşit mi $row değişkenine -> TRUE devam et.
Adım 2: tüm fetch_row döndürüldü, FALSE -> break.

Birinci durumda, her adımda mysql_query() yenilendiği için yeni veri seti geliyor sürekli.

Teşşekür ederim hocam açıklamalarınız için.
 
Üst