• 31-01-2015, 03:43:21
    #1
    <?php
    				function category_list($category_parent_id = 0) {
    				   static $cats;
    				   global $db;
    				   $item_count = 0;
    				   if (!is_array($cats)) {
    				      $sql = 'SELECT * FROM menuler';
    				      $res = $db->query($sql);
    				      $cats = array();
    				      foreach ($res as $cat) {
    				         $cats[] = $cat;
    				      }
    				   }
    				   $degerler = array();
    				   foreach($cats as $cat) {
    				      if (( int )$cat['ust_id'] !== ( int )$category_parent_id) {
    				         continue;
    				      }
    				      $degerler[] = '<li class="drop">';
    				      $degerler[] = '<a href="#'.$cat['id'].'"><span>';
    				      $degerler[] = $cat['baslik'];
    				      $degerler[] = '</span></a>';
    				      $degerler[] = '<ul class="drop-down">'.category_list($cat['id']).'</ul>';
    				      $degerler[] = '</li>';
    				   }
    				   $degerler = implode('', $degerler);
    				   if ('' == trim($degerler)) {
    				      return '';
    				   }
    				   return $degerler;
    				}
    				?>
    merhaba kullandığım kodlar yukarıda.

    ögrenmek istediğim şey ust_id "0" olan kategorilerin altında kategori varmı yokmu?

    ve alt kategorilerin altında başka alt kategori varmı?

    yardımcı olursanız sevinirim.
  • 31-01-2015, 11:56:03
    #2
    Eğer sınırsız bi alt kategori sistemi istiyorsanız bunun için rekürsif (kendini tekrarlayan) bir fonksiyon yazmanız gerekmektedir..

    Kendi kullandığım basit bi örneği vereyim ;

    Kendinize göre uyarlayabilirsiniz.
    function get_categories( $parent = 0 )
    {
    	$query = "select table from parent_id = '$parent'";
    	if( $query )
    	{
    		$output = '<ul class="cats">';
    		foreach( $query as $row )
    		{
    			$output.= '<li>';
    				$output.= '<a href="">'.$row->category_name.'</a>';
    				if( $get = get_categories( $row->category_id ) )
    				{
    					$output.= $get;
    				}
    			$output.= '</li>';
    		}
    		
    		$output.= '</ul>';
    	}
    	
    	return $output;
    }
    echo get_categories();
  • 31-01-2015, 15:31:20
    #3
    sesusera adlı üyeden alıntı: mesajı görüntüle
    Eğer sınırsız bi alt kategori sistemi istiyorsanız bunun için rekürsif (kendini tekrarlayan) bir fonksiyon yazmanız gerekmektedir..

    Kendi kullandığım basit bi örneği vereyim ;

    Kendinize göre uyarlayabilirsiniz.
    function get_categories( $parent = 0 )
    {
    	$query = "select table from parent_id = '$parent'";
    	if( $query )
    	{
    		$output = '<ul class="cats">';
    		foreach( $query as $row )
    		{
    			$output.= '<li>';
    				$output.= '<a href="">'.$row->category_name.'</a>';
    				if( $get = get_categories( $row->category_id ) )
    				{
    					$output.= $get;
    				}
    			$output.= '</li>';
    		}
    		
    		$output.= '</ul>';
    	}
    	
    	return $output;
    }
    echo get_categories();
    Merhaba cevabın için çok teşekkür ederim ama benim istediğim şu

    -Ürünler (4)
    --PC (2)
    ----Masaüstü (0)
    ----Laptop (0)
    --Elektronik (0)
  • 31-01-2015, 20:50:37
    #4
    function get_category_count( $parent = 0 ) {
    	global $mysqli;
    	
    	$request1 = $mysqli->query("SELECT COUNT(id) as sayi FROM kategori WHERE parent = '$parent'");
    	$row1 = $request1->fetch_assoc();
    	$request1->free();
    	
    	$count = $row1['sayi'];
    	
    	$request2 = $mysqli->query("SELECT id FROM kategori WHERE parent = '$parent'");
    	while ($row2 = $request2->fetch_assoc()) {
    		if ($get = get_category_count($row2['id'])) {
    			$count += $get;
    		}
    	}
    	$request2->free();
    
    	return $count;
    }
    // id yazacaksın 1,2,3,4,5
    echo get_category_count(1);
  • 01-02-2015, 19:29:27
    #5
    Ana kategorinin altındaki kategorileri saydırmak istiyorsanız Count ile bunu yapabilirsiniz.