Php ile Recursive Fonksiyona Alternatif varmı?

Kodla Büyü

mustafayilmaz28

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,425
merhaba arkadaşlar.
<?php
function urunkontrol($id=1){
$sorgum = @mysql_query("select * from menu where ustid='$id'");
while($yaz = mysql_fetch_array($sorgum)){
$kontrol = urunkontrol($yaz["id"]);
if($kontrol){
urunkontrol($yaz["id"]);
}
else{
#yapılacak olan İşlemlerim
}

}
}
?>
yukarıdaki yazdığım fonksiyon ile veri tabanında ki verileri çekmek istiyorum. o kısımda sorun yok .(aslında bu fonksiyonda çalışıyor ama) benim esas sormak istediğim şu;
bildiği kadarı ile recursive fonksiyonlar veri sayısı artınca sıkıntılı hatta aşırı bellek yüklemesi ile karşı karşıya kalabiliyormuşuz!
bu bilgime istinaden:
yukarıdaki fonksiyona alternatif ne yapabilirim?
daha hızlı ve sorunsuz olması açısından?
 
php database class şeklinde bir arama yaparsan daha güzel bir şey elde edebilirsin. He yok ben çok profesyonel bir şey ortaya koyacağım dersen.
ORM lere bakabilirsin.
http://www.doctrine-project.org/

ama yukarıda kullandığın yöntem şuan için doğru fakat Php 5.5 sürümden sonra kaldırılacak olan bir yöntem. Bunun yerine PDO yahut MySqli kullanır isen yahut ögrenir isen ilerde sıkıntı yaşamazsın.

Saygılar.
 
mustafayilmaz28' Alıntı:
ve
hocam teşekkür ederim cevaplarınıza. ama nested set model yada php database class veya pdo dışında sanırım başka bir yöntem yok gibi

hocam pdo php5 ile gelen yeni bağlantı biçimi istediğini onunla yapamazsın..
database class duymadım öyle birşey..
senin istediğin nested set model ile yapılıyor. Çekerken vt'den recursive yapmana gerek kalmıyor. istediğin son son elemanları, tek kategoriye bağlı alt kategorileri ve tüm kategorileri çok kolay ve işlemci - ram çok kasmadan alabiliyorsun basit sorguyla
 
hocam yazdığın fonksiyon kendi içinde sonsuz bir döngüye giriyor. normalde sayfa hatası vermesi gerekir.

if($kontrol){
urunkontrol($yaz["id"]); // bu satırı urunkontrol($yaz["id"]-1) olarak değiştirmelisin diye düşünüyorum.
}
 
BBNET
Geri
Üst