• 02-06-2014, 14:40:02
    #1
    Merhaba,

    Tablom: kategoriler
    id
    kategori
    ustkat


    Görünüm:
    -Bilgisayar
    ---Laptop
    ---Masaüstü
    ---Tablet
    -Yazılım
    -Haber

    Bu kodla tüm kategorileri listeliyorum,
    <?php
    	require_once "ayarlar.php";
    	function kategori ($id = 0, $string = 0){
    		$query = mysql_query("select * from kategoriler where ustkat = '$id'");
    		if (mysql_affected_rows()){
    			while ($row = mysql_fetch_array($query)){
                            echo '<table cellpadding="20" cellspacing="20" border="0" class="display" >
    
    <tr >
      <td width=170>'.str_repeat('-', $string).$row["kategori"].'</td>
      </tr>
    </table>';
    				kategori($row["id"], $string + 3);
    			}
    		}else {
    			return false;
    			}
    		}
    		kategori();
    ?>
    Benim istediğim başka bir sayfada (örnek ana sayfa) sadece ana kategorileri listelemek. Bu kodda nasıl bir değişiklik yapabilirm?

    Teşekkürler.
  • 02-06-2014, 14:42:42
    #2
    select * from kategoriler where ustkat = '$id' yerine select * from kategoriler where ustkat = '0' olarak denermisiniz bu sadece üst kategorileri vericektir.
  • 02-06-2014, 14:45:26
    #3
    $query = mysql_query("select * from `kategoriler` where `ustkat` = '0' OR `ustkat` = '');
    Veritabanınızda ana kategorilerin nasıl tutulduğu önemli tabi ama yukarıda arkadaşında belirttiği gibi ustkat değeri 0 veya boş olabilir. Bu sorguyla alabilirsiniz, farklı bir şekilde tutuluyorsa ufak değişilik gerekebilir.
  • 02-06-2014, 14:57:42
    #4
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    select * from kategoriler where ustkat = '$id' yerine select * from kategoriler where ustkat = '0' olarak denermisiniz bu sadece üst kategorileri vericektir.
    ChuckyFun adlı üyeden alıntı: mesajı görüntüle
    $query = mysql_query("select * from `kategoriler` where `ustkat` = '0' OR `ustkat` = '');
    Veritabanınızda ana kategorilerin nasıl tutulduğu önemli tabi ama yukarıda arkadaşında belirttiği gibi ustkat değeri 0 veya boş olabilir. Bu sorguyla alabilirsiniz, farklı bir şekilde tutuluyorsa ufak değişilik gerekebilir.

    Veri tabanında ana kategoriler "ustkat=0" olarak tutuluyor.
    Her ikisini de denedim aşağıdaki şekilde ama listeleme yapmadı. Kodlamada mı hata yapıyorum.

    $query = mysql_query("select * from 'kategoriler' where 'ustkat' = '0' OR 'ustkat' = '' ");
    $query = mysql_query("select * from kategoriler where ustkat = '0' ");
  • 02-06-2014, 15:31:23
    #5
    Fonksiyonu şu şekilde dener misin ?

    function kategori($id)
    	{
    		if(!$id) $id=0;
    		$query = mysql_query("select `id`, `kategori` from `kategoriler` where `ustkat` = '".$id."'");
    		if(mysql_affected_rows()) {
    			while($row = mysql_fetch_row($query)) {
    				echo '<table cellpadding="20" cellspacing="20" border="0" class="display" > 
    
    <tr > 
      <td width=170>'.str_repeat('-', $string).$row["kategori"].'</td> 
      </tr> 
    </table>';
    				if($id != '0') { kategori($row[0],$string + 3); }
    			}
    		} else {
    			return false;
    		}
    	}
  • 02-06-2014, 16:41:17
    #6
    ChuckyFun adlı üyeden alıntı: mesajı görüntüle
    Fonksiyonu şu şekilde dener misin ?

    function kategori($id)
    	{
    		if(!$id) $id=0;
    		$query = mysql_query("select `id`, `kategori` from `kategoriler` where `ustkat` = '".$id."'");
    		if(mysql_affected_rows()) {
    			while($row = mysql_fetch_row($query)) {
    				echo '<table cellpadding="20" cellspacing="20" border="0" class="display" > 
    
    <tr > 
      <td width=170>'.str_repeat('-', $string).$row["kategori"].'</td> 
      </tr> 
    </table>';
    				if($id != '0') { kategori($row[0],$string + 3); }
    			}
    		} else {
    			return false;
    		}
    	}

    Çok teşekkürler, tamamdır.