• 22-12-2013, 22:38:25
    #1
    Merhaba arkadaşlar bir sistemim için kullanmak üzere hazırladığım bir kod parçacığı değişik bir sorun oluşturdu.
    hemen kodları vereyim

    mysql veritabanım
    --
    -- Tablo yapısı: `menuler`
    --
    
    CREATE TABLE `menuler` (
      `id` int(11) NOT NULL auto_increment,
      `baslik` varchar(50) collate utf8_turkish_ci NOT NULL,
      `link` varchar(250) collate utf8_turkish_ci NOT NULL,
      `ozellik` varchar(50) collate utf8_turkish_ci NOT NULL,
      `sira` int(11) NOT NULL,
      `ustmenu` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=8 ;
    
    --
    -- Tablo döküm verisi `menuler`
    --
    
    INSERT INTO `menuler` (`id`, `baslik`, `link`, `ozellik`, `sira`, `ustmenu`) VALUES
    (1, 'Anasayfa', './', 'ust', 1, 0),
    (2, 'Hakkımızda', './s2_Hakkimizda.html', 'ust', 2, 0),
    (3, 'Hizmetlerimiz', './s8_Hizmetlerimiz.html', 'ust', 3, 0),
    (4, 'Referanslarımız', './s1_Referanslarimiz.html', 'ust', 4, 0),
    (5, 'Foto Galeri', './galeri.html', 'ust', 5, 0),
    (6, 'İletişim', './iletisim.html', 'ust', 6, 0),
    (7, 'deneme', 'denem', '', 1, 2);
    php kodu

    function menuListele2($menuid=0,$ozellik="")
    {
    $yaz ="<ul>";
    global $vt;
    	
    	$menusql = $vt->tablo("SELECT * FROM menuler where ustmenu='".$menuid."' ".$ozellik."  order by sira and ozellik asc ");
    foreach($menusql as $menu) 
    		 {	
    $yaz.= '
    <li> <input type="radio" name="ustmenu" value="'.$menu->id.'" /> '.$radioButtonY.' '.$menu->baslik.' '.menuListele2($menu->id).'</li>
    ';
    }
    	
    $yaz .="<ul>";	 
    	return $yaz;
    }
    
     	  echo menuListele2(0);




    html çıktı
    <ul id="red" class="treeview-red">
    <li><span> <input type="radio" name="ustmenu" value="0" />
     Genel</span>
    	  <ul>
    <li> <input type="radio" name="ustmenu" value="1" />  Anasayfa <ul><ul></li>
    
    <li> <input type="radio" name="ustmenu" value="2" />  Hakkımızda <ul>
    <li> <input type="radio" name="ustmenu" value="7" />  deneme <ul><ul></li>
    <ul></li>
    
    <li> <input type="radio" name="ustmenu" value="3" />  Hizmetlerimiz <ul><ul></li>
    
    <li> <input type="radio" name="ustmenu" value="4" />  Referanslarımız <ul><ul></li>
    
    <li> <input type="radio" name="ustmenu" value="5" />  Foto Galeri <ul><ul></li>
    
    <li> <input type="radio" name="ustmenu" value="6" />  İletişim <ul><ul></li>
    <ul>	 </li>
    	 </ul>



    çıktı olarak göstermesini istediğim örnek kod ise


    <ul>
    <li>anasayfa</li>
    <li>hizmet
    <ul><li>deneme</li></ul>
     </li>
    <li> iletişim</li>
    
    </ul>
  • 22-12-2013, 22:48:11
    #2
    10. satırda
    <li> <input type="radio" name="ustmenu" value="'.$menu->id.'" /> '.$radioButtonY.' '.$menu->baslik.' '.menuListele2($menu->id).'</li>
    fonksiyonu tekrar cagırmışsın. buda li açıklaması içinde tekrara sebep olmuş.

    edit: fonksiyonun çıktısı ile istediğin çıktı tamamen farklı. Fonksiyonu değiştirmek gerekli.

    edit 2: umarım aşağıdaki kod istediğini verir.
    <?php function menuListele2($menuid=0,$ozellik="")
    {
    $yaz ="<ul>";
    global $vt;
        
       $menusql = $vt->tablo("SELECT * FROM menuler where ustmenu='".$menuid."' ".$ozellik."  order by sira and ozellik asc ");
    foreach($menusql as $menu) 
           { 
    	$yaz.= ' <li> '.$radioButtonY.' '.$menu->baslik.'</li> ';
    	}
        
    		$yaz .="<ul>";  
    		   return $yaz;
    }
     
         echo menuListele2(0);?>
  • 22-12-2013, 23:16:34
    #3
    crooper adlı üyeden alıntı: mesajı görüntüle
    10. satırda
    <li> <input type="radio" name="ustmenu" value="'.$menu->id.'" /> '.$radioButtonY.' '.$menu->baslik.' '.menuListele2($menu->id).'</li>
    fonksiyonu tekrar cagırmışsın. buda li açıklaması içinde tekrara sebep olmuş.

    edit: fonksiyonun çıktısı ile istediğin çıktı tamamen farklı. Fonksiyonu değiştirmek gerekli.

    edit 2: umarım aşağıdaki kod istediğini verir.
    <?php function menuListele2($menuid=0,$ozellik="")
    {
    $yaz ="<ul>";
    global $vt;
        
       $menusql = $vt->tablo("SELECT * FROM menuler where ustmenu='".$menuid."' ".$ozellik."  order by sira and ozellik asc ");
    foreach($menusql as $menu) 
           { 
    	$yaz.= ' <li> '.$radioButtonY.' '.$menu->baslik.'</li> ';
    	}
        
    		$yaz .="<ul>";  
    		   return $yaz;
    }
     
         echo menuListele2(0);?>

    değiştirebilirz hocam kaç saattir php yazıyorum mutlaka gözümden birşeyler kaçmış olabilir

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:16:34 -->-> Daha önceki mesaj 22:54:10 --

    aşağıdaki kod ile istediğimi yaptım arkadaşlar örnek olarak arşivimde buldum


    <?php
    
    function kategori($id)
    
    {
    
    $say=mysql_num_rows(mysql_query("SELECT * FROM kategori where kat='".$id."'"));
    
    if($say>0)
    
    {
    
    echo "
    
    <ul>
    
    ";
    
    $conn=mysql_query("SELECT * FROM kategori where kat='".$id."'");
    
    while($row=mysql_fetch_object($conn))
    
    {
    
    echo "<li>
    
    <input type=\"radio\" name=\"kategori\" class=\"uniform\" style=\"opacity: 0;\" value=\"".$row->id."\">
    
    <span> ".$row->kategori."</span>"; kategori($row->id); 
    
    echo "
    
    </li>
    
    ";
    
    }
    
    echo "
    
    </ul>
    
    ";
    
    }
    
    }
    
    function kategoriduzenle($id,$select)
    
    {
    
    $say=mysql_num_rows(mysql_query("SELECT * FROM kategori where kat='".$id."'"));
    
    if($say>0)
    
    {
    
    echo "
    
    <ul>
    
    ";
    
    $conn=mysql_query("SELECT * FROM kategori where kat='".$id."'");
    
    while($row=mysql_fetch_object($conn))
    
    {
    
    if($row->id==$select){$selected= 'checked';} else {$selected= '';}
    
    echo "<li>
    
    <input type=\"radio\" name=\"kategori\" class=\"uniform\" style=\"opacity: 0;\" value=\"".$row->id."\" ".$selected.">
    
    <span> ".$row->kategori."</span>"; kategoriduzenle($row->id,$select); 
    
    echo "
    
    </li>
    
    ";
    
    }
    
    echo "
    
    </ul>
    
    ";
    
    }
    
    }
    
    
    
    
    
    ?>