<?php kategoriYaz(); ?>
<?php
function kategoriYaz($kid = NULL) {
db = new mysqli('sunucu', 'kullanici', 'sifre', 'vt_adi');
$rs = $db->query("SELECT * FROM kategori WHERE ".($kid ? "kid = ".$kid : "ISNULL(kid)")." ORDER BY id desc");
if($rs->num_rows) {
while($row = $rs->fetch_assoc()) {
echo $row['isim'];
kategoriYaz($row['id']);
}
}
}
?> php fonksiyon içerisinde yer alan sql sorgusunda sıralama sorunu
7
●648
- 27-02-2018, 13:58:32Merhaba Arkadaşlar,Php ile kategorinin tüm alt kategorilerini aşağıdaki recursive fonksiyon yardımıyla alabiliyorum. Merak ettiğim bir konu var. Aşağıdaki fonksiyon içerisinde yer alan sql sorgusunda desc/asc ile sıralatabiliyor. Ancak $kid değerine GET ile aldığım veriyi aktardığım zaman neden desc/asc çalışmıyor?
- 27-02-2018, 14:02:08Hacı kodda zaten hata var bu şekilde çalıştığında. Eğer $kid gelmezse WHERE ve ORDER yan yana geliyor, ayrıca recursive çalıştırımlarda sorgu çağırmamanız performans açısından daha iyi olacaktır. Kaldı ki siz mysql bağlantısını bile tekrar tekrar yapmayı göze almışsınız.
- 27-02-2018, 14:15:40Where ve order birlikte kullanılmasında ne gibi bir sakınca olabilir. Diğer taraftan recursive içerisinde sql kullanmazsam bile bu sorgular zaten yapılacak. Açıkcası left join kullanmak veya nested hiyerarşi aklıma pek yatmadı.DWather adlı üyeden alıntı: mesajı görüntüle
- 27-02-2018, 14:17:08where ve order'in yan yana gelmesinde şöyle bir sıkıntı var, eğer $kid gelmezse kodun şöyle oluyor : "SELECT * FROM kategori WHERE ORDER BY id desc" mysql syntax hatası demek bu da.emre0606 adlı üyeden alıntı: mesajı görüntüle
- 27-02-2018, 14:19:17Hocam zaten bunun kontrolü yapılmadan olur mu? Ben burada okuyan vakit kaybetmesin diye yalın halini paylaştım.DWather adlı üyeden alıntı: mesajı görüntüle
- 27-02-2018, 14:54:31Sürekli ve değiştirerek kullanmak istediğim bir ağaç kategori listesini döngüyle mi kur diyorsun? Anlamadım demek istediğini.DWather adlı üyeden alıntı: mesajı görüntüle
- 27-02-2018, 15:00:21Şöyle :
<?php kategoriYaz(); ?> <?php function kategoriYaz($kid = NULL) { db = new mysqli('sunucu', 'kullanici', 'sifre', 'vt_adi'); $sql = "SELECT * FROM kategori WHERE ".($kid ? "kid = ".$kid : "ISNULL(kid)")." ORDER BY id desc"; $rs = $db->query($sql ); print $kid . " -> " . $sql; if($rs->num_rows) { while($row = $rs->fetch_assoc()) { echo $row['isim']; kategoriYaz($row['id']); } } } ?>