v2.5.2
Giriş yap

PHP Sınırsız Kategori Fonksiyon

jct
3,398 defa görüntülendi

PHP Sınırsız Kategori için 2 adet fonksiyonum var;

Birinci fonksiyon kategorileri hiyerarşik alt alta sıralıyor ve sorunsuz çalışıyor.

function KATEGORI_LISTELE_GENEL($Kategori_ID = 0){

		GLOBAL $PDO_Connect;

		$PDO_Query = $PDO_Connect -> prepare("SELECT * FROM kategoriler WHERE Kategori_Ebeveyn = ?");
		$PDO_Query -> execute([$Kategori_ID]);
		$PDO_Query = $PDO_Query -> fetchAll(PDO::FETCH_OBJ);

		foreach($PDO_Query as $PDO_Data){
			echo $PDO_Data -> Kategori_ID." ";
			echo $PDO_Data -> Kategori_Ad." ";
			echo $PDO_Data -> Kategori_Ebeveyn."<br />";
			KATEGORI_LISTELE_GENEL($PDO_Data -> Kategori_ID);
		}
	
	}
	
	KATEGORI_LISTELE_GENEL();
PHP

ikinci fonksiyon herhangi bir kategoriyi hiyararşik sıralıyor ve sorunsuz çalışıyor

$Kategori_Dizi = array();
	
function KATEGORI_LISTELE_SIRALI($Kategori_ID){

	GLOBAL $PDO_Connect, $Kategori_Dizi;

	$PDO_Query = $PDO_Connect -> prepare("SELECT * FROM kategoriler WHERE Kategori_ID = ?");
	$PDO_Query -> execute([$Kategori_ID]);
	$PDO_Query = $PDO_Query -> fetch(PDO::FETCH_OBJ);

	$Kategori_Dizi[] = $PDO_Query -> Kategori_Ad;

	if($PDO_Query -> Kategori_Ebeveyn > 0){
		KATEGORI_LISTELE_SIRALI($PDO_Query -> Kategori_Ebeveyn);
	}

	return $Kategori_Dizi;

}

    print_r(KATEGORI_LISTELE_SIRALI(2))
PHP

Şimdi sorunun olduğu kısım ilk fonskiyon içinde ikinci fonksiyonu kullanınca saçmalıyor. Sanki diziyi temizlemiyorda sürekli üzerine ekliyor gibi duruyor.

function KATEGORI_LISTELE_GENEL($Kategori_ID = 0){

		GLOBAL $PDO_Connect;

		$PDO_Query = $PDO_Connect -> prepare("SELECT * FROM kategoriler WHERE Kategori_Ebeveyn = ?");
		$PDO_Query -> execute([$Kategori_ID]);
		$PDO_Query = $PDO_Query -> fetchAll(PDO::FETCH_OBJ);

		foreach($PDO_Query as $PDO_Data){
			echo $PDO_Data -> Kategori_ID." ";
			print_r(KATEGORI_LISTELE_SIRALI($PDO_Data -> Kategori_ID))." ";
			echo $PDO_Data -> Kategori_Ebeveyn."<br />";
			KATEGORI_LISTELE_GENEL($PDO_Data -> Kategori_ID);
		}
	
	}
	
	KATEGORI_LISTELE_GENEL();
PHP
Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (6)
pcmemo
1792 gün önce

@ekimnet eline sağlık. Detaya girmeden makalene bir göz gezdirdim. Böyle bir yapıya ihtiyacım var uygulamaya çalışacağım, fakat birde dropdown menüde listeleme olsa fena olmazdı.

ekimnet
1792 gün önce

belki işinize yarar şurada anlatmıştım https://www.ekimnet.com/php-ile-sinirsiz-kategori-nasil-yapilir

phpprogramming
1890 gün önce

asd

phpprogramming
1890 gün önce

php

ergince
1893 gün önce

bu site tuha kafasına göre yazılanları şekillendiriyor kodları okuyup anlarsın umarım :)

ergince
1893 gün önce

3 fonskyion yazmalısın

iç içe kullanmalısın

sorgu vs yazan yere kendi PDO sorgularını yaz;

function kat1($katAdi,$KatID){

    ///$sorgu = "where  KatID='$KatID' vs...";
    
    foreach($PDO_Query as $PDO_Data){
        
        $yeniKat = $katAdi."/".$PDO_Query -> Kategori_Ad;
        
        echo $yeniKat."<br>";
         
         kat2($yeniKat,$PDO_Query->katID)
	
	}
    
    

}

function kat2($katAdi,$KatID){

    ///$sorgu = "where  KatID='$KatID' vs...";
    
    foreach($PDO_Query as $PDO_Data){
        
        $yeniKat = $katAdi."/".$PDO_Query -> Kategori_Ad;
        
        echo $yeniKat."<br>";
         kat1($yeniKat,$PDO_Query->katID)
	
	}
    
    

}

function kat(){

  ///$sorgu = "where  KatID='0' vs...";
  
  foreach($PDO_Query as $PDO_Data){
    
        echo $katAdi."<br>";
         kat1($katAdi,$PDO_Query->katID)
	
	}

}