• 21-02-2009, 10:45:40
    #10
    $sektors['$kat_id'] = $katid;
    <? } ?>
    bundan hemen önce ekLer misin?
  • 21-02-2009, 12:56:18
    #11
    Tek tabloda sınırsız kategori alt kategori yapabilirsin.. ceviz.nette bununla ilgili birsürü konu var..

    Sınırsız Kategoriler Ekle Güncelle ve Sil - Ceviz Forum
  • 21-02-2009, 16:24:30
    #12
    YuqseLX adlı üyeden alıntı: mesajı görüntüle
    $sektors['$kat_id'] = $katid;
    <? } ?>
    bundan hemen önce ekLer misin?
    maalesef olmadı

    gezginturk adlı üyeden alıntı: mesajı görüntüle
    Tek tabloda sınırsız kategori alt kategori yapabilirsin.. ceviz.nette bununla ilgili birsürü konu var..

    Sınırsız Kategoriler Ekle Güncelle ve Sil - Ceviz Forum
    bi bakayım..
  • 21-02-2009, 23:27:15
    #13
    Üyeliği durduruldu
    sql :
    -- 
    -- Tablo yapısı: `s_kategoriler` 
    -- 
    CREATE TABLE `s_kategoriler` ( 
      `kategori_id` int(11) NOT NULL auto_increment, 
      `kategori_adi` varchar(255) default NULL, 
      `altkategori_id` int(11) default NULL, 
      PRIMARY KEY  (`kategori_id`) 
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin5 AUTO_INCREMENT=110 ; 
    -- 
    -- Tablo döküm verisi `s_kategoriler` 
    -- 
    INSERT INTO `s_kategoriler` VALUES (109, 'BB1', 108); 
    INSERT INTO `s_kategoriler` VALUES (102, 'A', 0); 
    INSERT INTO `s_kategoriler` VALUES (103, 'B', 0); 
    INSERT INTO `s_kategoriler` VALUES (104, 'C', 0); 
    INSERT INTO `s_kategoriler` VALUES (105, 'D', 0); 
    INSERT INTO `s_kategoriler` VALUES (106, 'A1', 102); 
    INSERT INTO `s_kategoriler` VALUES (107, 'AA1', 106); 
    INSERT INTO `s_kategoriler` VALUES (108, 'B1', 103);
    kategoriler.php :
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
       <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> 
       <head> 
       <title>www.ugurturan.com</title> 
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> 
       <script language="JavaScript" type="text/javascript"> 
       //Ürünleri Silme işlemi 
       var checkflag = "false"; 
       function sec(field) 
       { 
       if (checkflag == "false") 
       { 
       for (i = 0; i < field.length; i++) 
       { 
       field[i].checked = true; 
       } 
       checkflag = "true"; 
       return "Seçimi Kaldır"; 
       } else { 
       for (i = 0; i < field.length; i++) 
       { 
       field[i].checked = false; 
       } 
       checkflag = "false"; 
       return "Tümünü Seç"; 
       } 
       } 
       <!--SİLMEK İSTEDİGİNİZDE SİZİ UYARAN KODLAR--> 
       function islemler(mesaj) 
       { 
       var total = 0; 
       var max   = 0; 
       max       = formbilgi.onaykutusu.length; 
       for (var idx = 0; idx < max; idx++) 
       { 
       if (eval("document.formbilgi.onaykutusu[" + idx + "].checked") == true) 
       { 
         total += 1; 
       } 
       } 
       if (total == 0) 
       { 
       alert("Hiç Seçim Yapmadınız"); 
       return false; 
       } else { 
       return confirm('Seçtiğiniz ' + total + ' Veriyi Silmek İstiyormusunuz? Veri Tamamen Silinecek'); 
       } 
       } 
       <!-- SİLME İŞLEMLERİ BİTİŞİ --> 
       </script> 
       </head> 
       <body> 
       <?php 
       // www.ugurturan.com 
       // Uğur TURAN 
       // info@ugurturan.com 
       // ugurturan@msn.com 
       // Bismillah diyerek işe başlıyoruz. Çünkü her helal işin başı bismillahtır. 
       // Öncelikle nreden veri alacaksak o veri tabanını tanıtıyoruz. 
       // Ben örnek olsun diye benim veritabanını girdim. Sizde kendinize ait olanı giriniz. 
       @mysql_connect('localhost','root','123456'); 
       @mysql_select_db('zedatriko'); 
       //Sınırsız Kategori Listeleme Fonksiyonudur. 
       function kategorilerilistele($altkategori_id,$level) //completely expand category tree 
       {     
       $q = mysql_query("SELECT kategori_id, kategori_adi, altkategori_id FROM s_kategoriler WHERE kategori_id<>0 and altkategori_id=$altkategori_id ORDER BY kategori_adi") or die (mysql_error()); 
       $a = array(); //altkategori_id'ler 
       while ($row = mysql_fetch_row($q)) 
       { 
       $row[5] = $level; 
       $a[] = $row; 
       //Altkategori işlemleri 
       $b = kategorilerilistele($row[0],$level+1); 
       //Ekle $b[] Sonuna $a[] 
       for ($j=0; $j<count($b); $j++) 
       { 
       $a[] = $b[$j]; 
       } 
       } 
       return $a; 
       } //kategorilerilistele 
       //kategorileri Düzenli şekilde Silmek 
       function kategorivealtkategorilerisil($altkategori_id) //Kategorinin Tüm Alt Kategorilerini Siler kategori_id=$altkategori_id 
       { 
          //Alt Kategoriler 
          $q = mysql_query("SELECT kategori_id FROM s_kategoriler WHERE altkategori_id=$altkategori_id and kategori_id<>0") or die (mysql_error()); 
          while ($row = mysql_fetch_row($q)) 
          { 
             kategorivealtkategorilerisil($row[0]); //tekrarlı döngü 
          } 
          $q = mysql_query("DELETE FROM s_kategoriler WHERE altkategori_id=$altkategori_id and kategori_id<>0") or die (mysql_error()); 
          //Root Kategori ile birlikte Ürünlerdeki kategorileri de düzenler 
          $q = mysql_query("UPDATE urunler SET kategori_id=0 WHERE kategori_id=$altkategori_id") or die (mysql_error()); 
       } 
       @ $s_kategorilerislem      = strip_tags(trim($_GET['s_kategorilerislem'])); 
       if (!$s_kategorilerislem) 
       { 
       @ $ekle                  = intval($_GET['ekle']); 
       if (empty($ekle)) 
       {     
       @ $kategori_id            = intval($_GET['kategori_id']); 
       $altkategori_id            = ''; 
       if (empty($kategori_id)) { 
       $bbaslik               = "ÜRÜN KATEGORİSİ EKLE"; 
       $buton                  = "KAYDET"; 
       } else { 
       $bbaslik               = "ÜRÜN KATEGORİSİNİ DÜZENLE"; 
       $buton                  = "DEGİŞTİR"; 
       //kategoriler DUZENLE 
       $kategoriler_duzenleme_sql  = "SELECT * FROM s_kategoriler WHERE kategori_id='$kategori_id'"; 
       $kategoriler_duzenleme_sonuc= mysql_query($kategoriler_duzenleme_sql) or die ("Hata: kategoriler Görülemedi"); 
       $kategoriler_duzen_izin      = mysql_num_rows($kategoriler_duzenleme_sonuc); 
       $kategoriler_ayrinti      = mysql_fetch_array($kategoriler_duzenleme_sonuc); 
       $kategori_id            = $kategoriler_ayrinti["kategori_id"]; 
       $kategori_adi            = $kategoriler_ayrinti["kategori_adi"]; 
       $altkategori_id            = $kategoriler_ayrinti["altkategori_id"]; 
       if (!get_magic_quotes_gpc()) 
       { 
       $kategori_adi               = stripslashes($kategori_adi); 
       } 
       mysql_free_result($kategoriler_duzenleme_sonuc); 
       } 
       ?> 
       <table id=AutoNumber1 style="border-collapse: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="50%" border="0" align="center">     
       <tr> 
       <td width="100%" align="center"> 
       <fieldset> 
       <legend>&nbsp;<b>Kategori Ekleyin, Düzenleyin ve Silin</b>&nbsp;</legend> 
       <table width="100%" align="center">     
       <form action="?sayfa=kategoriekle&ekle=1" method="post"> 
      <input type="hidden" name="kategori_id" value="<?php echo trim($kategori_id);?>" /> 
       <td width="50%" bgcolor=#f0f8ff align="center" class="baslik">Root Ana kategoridir. Diğer kategorilere alt kategoriler eklemek için Root altındaki kategorilerden birisini seçip veri girişinden kategori yazıp kaydet demeniz yeterlidir.</td> 
       </tr> 
       <tr> 
       <td width="50%" bgcolor=#f0f8ff align="center" class="altkategori">Kategori Listesi : 
       <select name="altkategori_id"> 
       <option value="0">Root</option> 
       <?php 
       //kategorileri listele combobox 
       $tmp = isset($_GET["w"]) ? $_GET["w"] : $_POST["altkategori_id"]; 
       $cats = kategorilerilistele(0,0); 
       for ($i=0; $i<count($cats); $i++) 
       { 
       echo "<option value=\"".$cats[$i][0]."\""; 
       if ($tmp == $cats[$i][0]) //select kategori 
       echo " selected"; 
       echo ">"; 
       for ($j=0;$j<$cats[$i][5];$j++) echo "&nbsp;&nbsp;"; 
       echo $cats[$i][1]; 
       echo "</option>"; 
       } 
       ?> 
       </select> 
       </td> 
       </tr> 
       <tr> 
       <td width="50%" bgcolor=#f0f8ff align="center" class="altkategori">Veri Girişi : 
       <input size="40" name="kategori_adi" value="<?php echo $kategori_adi; ?>"></td> 
       </tr> 
       <tr> 
       <td width="50%" bgcolor=#f0f8ff align="center" class="altkategori"> 
       <input type="submit" name="ekle" value="<?php echo $buton; ?>"></td> 
       </tr>     
       </table> 
       </fieldset>     
       </form> 
       </table> 
       <?php     
       unset($kategoriler_ayrinti);     
       } elseif ($ekle == 1) {     
       $kategori_id         = abs(intval($_POST['kategori_id'])); 
       $kategori_adi         = trim(strip_tags(htmlspecialchars($_POST['kategori_adi']))); 
       if (!$kategori_adi) 
       { 
          echo '<script>alert("İşaretli Alanlar Zorunludur.");history.go(-1)</script>'; 
          exit; 
       } 
       if (!get_magic_quotes_gpc()) 
       {     
       $kategori_adi         = addslashes($kategori_adi); 
       $altkategori_id         = addslashes($altkategori_id);     
       } 
       if (empty($kategori_id)) 
       {     
       $q = mysql_query("INSERT INTO s_kategoriler (kategori_adi, altkategori_id) VALUES ('$kategori_adi', '$altkategori_id')") or die (mysql_error()); 
       $pid = mysql_insert_id(); 
       echo '<script>alert("Kategori Başarıyla Eklendi.");location.href=\'?sayfa=kategoriekle\';</script>'; 
       } else { 
       $s_kategoriler_duzelt   = "UPDATE s_kategoriler SET kategori_adi = '$kategori_adi' WHERE kategori_id = $kategori_id"; 
       mysql_query($s_kategoriler_duzelt) or die (mysql_error()); 
       echo '<script>alert("Kategori Başarıyla Düzeltildi.");location.href=\'?sayfa=kategoriekle\';</script>'; 
       }     
       } else { 
       echo '<script>alert("İzin Yok");location.href=\'?sayfa=kategoriekle\';</script>';      
       }     
       } elseif ($s_kategorilerislem == 1) { 
       @ $kategorisil            = $_POST['kategorisil']; 
       @ $formbilgi            = $_POST; 
       if ($kategorisil) 
       { 
       //SİLME İŞLEMLERİ (BUNUNLA İLĞİLİ FONKSİYON "baglar/fonk.inc.php" İÇİNDEDİR. (deleteSubCategories) 
       foreach ( $formbilgi as $anahtar=>$deger ) 
       { 
       if ( gettype ($deger ) != "array" ) 
       { 
       if ($anahtar == "kategori_$deger") 
       { 
          $kategorileri_sil      = mysql_query("DELETE FROM s_kategoriler WHERE kategori_id=$deger"); 
          //Kategori siliniyor ve buna baglı alt kategoriler varsa onlarda siliniyor. 
          kategorivealtkategorilerisil($deger); 
       } 
       } 
       } 
       echo '<script>alert("Kategori veya kategoriler başarıyla silindi.");location.href=\'?sayfa=kategoriekle\';</script>';     
       } 
       } 
       ?> 
       <table id=AutoNumber1 style="border-collapse: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="50%" border="0" align="center"> 
       <tbody> 
       <tr> 
       <td width="100%"> 
       <fieldset> 
       <legend>&nbsp;<b><?php echo $dil['kategoriguncellesil']; ?></b>&nbsp;</legend> 
       <table width="100%" align="center">     
       <form action="?sayfa=kategoriekle&s_kategorilerislem=1" method="post" name="formbilgi"> 
       <input type="hidden" name="kategori_id" value="<?php echo trim($kategori_id);?>" /> 
       <?php 
       $toplam                = mysql_query("SELECT COUNT(*) FROM s_kategoriler"); 
       list($toplam_kategoriler)   = mysql_fetch_row($toplam); 
       mysql_free_result($toplam); 
       echo ' 
       <tr> 
       <td width=100% colspan="8" align="center" bgcolor="#f0f8ff"> 
       </td> 
       </tr> 
       <tr> 
       <td width=100% colspan="6" align="left" bgcolor="#f0f8ff">';         
       echo '&nbsp;&nbsp;<font color="#FF0000">&nbsp;&nbsp;Seçilileri : </font> 
       <input type="submit" value="Sil" name="kategorisil" onclick="return islemler(\'Silinecek Eminmisin\')">&nbsp;&nbsp;Toplam Kategori ve Alt Kategori Sayısı : <b>'.$toplam_kategoriler.'</b> 
       <tr bgColor="#4faafa"> 
       <td width="5%" align="left"> 
       <input type="checkbox" onclick="this.value=sec(this.form.onaykutusu)"></td> 
       <td width="90%" align="left"><b>Kategori Adı</b></td> 
       </tr>'; 
       #Kategorileri Listele 
       Listele(0,""); 
       # Özyinelemeli listele fonksiyonu 
       # ---------------------------------------------------------------------------------------- 
       function Listele($kategori_id,$derinlik){ 
       # Sorgu cümlesi 
       $cumle = "select *, find_in_set(".$kategori_id.",altkategori_id) as seviye from s_kategoriler having seviye = 1"; 
       $sorgu = mysql_query($cumle);     
       # Kayıtları bas 
       while($sonuc            = mysql_fetch_array($sorgu)){     
       $kategori_adi            = $sonuc["kategori_adi"]; 
       $kategori_id            = $sonuc["kategori_id"]; 
       # Kategorı bilgilerini bas, Alt kategorileri (varsa) bas     
       echo ' 
       <tr bgColor="#cae3f9"> 
       <td width="10%" align="left"><input type="checkbox" id="onaykutusu" name="kategori_'.$kategori_id.'" value="'.$kategori_id.'" class="onaykutusu"></td>           
       <td width="20%" align="left">'.$derinlik.'<a href="?sayfa=kategoriekle&kategori_id='.$kategori_id.'">'.$kategori_adi.'</td>     
       </tr>'; 
       Listele($kategori_id,$derinlik."&nbsp;&nbsp;&nbsp;&nbsp;"); 
       } 
       return; 
       } 
       echo ' 
       <tr> 
       <td colspan="3" width="100%" bgcolor="#f0f8ff" align="left"> 
       &nbsp;&nbsp;<font color="#FF0000">&nbsp;&nbsp;Seçilileri : </font> 
       <input type="submit" value="Sil" name="kategorisil" onclick="return islemler(\'Silinecek Eminmisin\')"></td> 
       </tr>';     
       ?> 
       </form> 
       </table> 
       </fieldset> 
       </td> 
       </tbody> 
       </tr> 
       </table> 
       </body> 
       </html>
    kaynak : pehepe.org - ugur turan