Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Php Tab menu döngü içinde veritabanından çekmek

<ul>
   <li>İngilizce</li>
   <li>Fransizce</li>
   <li>Almanca</li>
</ul>

<div class="tab_icerik">
   Burası İngilizce içerik
</div>
<div class="tab_icerik">
 Burası Fransızca içerik
 </div>
<div class="tab_icerik">
  Burası Almanca içerik
</div>

Php ve Mysql ile yapmak istiyorum
Şeklinde yapım var sitetab adında ve id,baslik,tabicerik şeklinde tablom var. Yapmak istediğim baslik ve içeriği döngüyle döndürmek. Bu konularda hep takılıyorum ancak örnekte bulamıyorum malesef.
  • Sanırım ben yanlış anladım. Aşağıdaki navigasyon menü işlemi... ul li taglarını görünce ben menü yapmaya çalıştığını düşünmüştüm... Sorduğun işlemi ajax kullanarak yapabilirsin.
    zyber 11 yıl önce yazdı
  • Dediğin işlemi yapan hazır bir örnek https://www.box.com/shared/96q2y19zyy
    zyber 11 yıl önce yazdı
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • yusuef adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 yıl önce güncellenmiş
    32 cevap - 0 soru
    <?php
    
    $sql = "SELECT id, icerik, ad FROM tablo_adi";  
    
    $result = mysql_query($sql);        
    
    $menu = '<ul>';
    $tabs = '';
    
    while($row=mysql_fetch_array($result))
    {
    	$menu. = '<li>'.$row['ad'].'</li>';
    	$tabs. = '<div class="tab_icerik">'.$row['icerik'].'</div>';
    	
    }
    $menu .= '</ul>';
    ?>
    


    Döngü sonunda elinde $menu ve $tabs diye iki tane ayrı değişken var.

    <?php
    echo $menu;
    echo $tabs;
    ?>
    

    dersen sanırım istediğin şeyi yapmış olursun. (Bu arada veritabanı tablolar ve degiskenler rastgeledir uyarlaman lazım :))

Cevaplar

  • zyber adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 yıl önce güncellenmiş
    57 cevap - 25 soru
    En Basit Hali ile aşağıdaki şekilde yapabilirsin...
    Anlaşılır olması açısından menüye css eklemedim.

    <?php
    /*
    php isimli bir veritabanı içinde tblkategori isimli aşağıdaki tablo ve kategorileri açarsan örnek çalışacaktır.
    
    CREATE TABLE IF NOT EXISTS `tblkategori` (
      `id` int(6) NOT NULL auto_increment,
      `parent_id` int(4) NOT NULL default '0',
      `ad` varchar(255) NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `parent_id` (`parent_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
    
    INSERT INTO `tblkategori` (`id`, `parent_id`, `ad`) VALUES
    (1, 0, 'Kategori 01'),
    (2, 0, 'Kategori 02'),
    (3, 0, 'Kategori 03'),
    (4, 1, 'Kategori 01 A'),
    (5, 1, 'Kategori 01 B'),
    (6, 1, 'Kategori 01 C'),
    (7, 4, 'Kategori 01 AA'),
    (8, 4, 'Kategori 01 AB'),
    (9, 4, 'Kategori 01 AC');
    
    */
    
    $id = $_GET['id'];
    $db_host="localhost";
    $db_user="root";
    $db_pass="123456";
    $veritabani_ad="php";
     
    $baglanti = mysql_connect($db_host,$db_user,$db_pass) or die('Bağlantı yok : '.mysql_error());
    mysql_select_db($veritabani_ad) or die('Veritabanı yok yada ulaşılamadı : '.mysql_error());
    mysql_query("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION = 'utf-8'");
    ?>
    <!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"  xml:lang="tr" lang="tr" dir="ltr">
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style type="text/css">
    <!-- 
    html,body,div,span,h1,h2,h3,p,hr,br,img,form,input,ul,li,a {
     margin:0;
     padding:0;
     border:0;
    }
    ul li {list-style:none;}
    body {
     font-family:Helvetica, Arial, Tahoma, sans-serif;
     font-size:13px;
     color:#444;
     line-height:1.5em;
    } 
    #kapsayici {
    background:#fff;
    margin:10px auto;
    width:960px;
    border:1px solid #dfdfdf;
    min-height: 700px;
    }
    -->
    </style>
    </head>
    <body>
    <div id="kapsayici">
    <?php
    $menu = fonkMenu(0);
    
    echo $menu;
    ?>
    </div>
    </body>
    </html>
    <?php
    mysql_close($baglanti);
    
    function fonkMenu($parent_id = 0) {
    $altmenu = false;
    $mn = (!$parent_id) ? ' id="menu"' : ' class="altmenu"';
    
    $sql = "SELECT id, parent_id, ad FROM tblkategori";  
    $result = mysql_query($sql);        
    while($row=mysql_fetch_array($result)) {
     $menuliste[$row['id']] = array('id' => $row['id'], 'parent_id' => $row['parent_id'], 'ad' => $row['ad'],);
    }
    
    foreach ($menuliste as $key => $row) {
    	if ($row['parent_id'] == $parent_id) {
    		if ($altmenu === false) {
    			$altmenu = true;	
    			print "<ul".$mn.">\n";
    		}
    		$url = '/index.php?id='.$row['id'];
    		//$aktif = ($row['id'] == $gelen_id) ? " class=\"aktif\"" : "";
    		$aktif = '';
    		$link = '<li'.$aktif.'><a href="'.$url.'"><span>'.$row['ad'].'</span></a>';
    		print $link;
    		fonkMenu($key);
    		print "</li>\n";
    	}
    }
    unset($row);
    if ($altmenu === true)
     print "</ul>\n";
    }
    ?>
    
    


    php ve sql dosya
    http://www.share.az/imx83ptxh59f/menu.rar.html

    sql
    http://www.sqlfiddle.com/#!2/5096c
    • b4d3k35 adlı üyenin fotoğrafı b4d3k35
      Cevapınız için teşekkür ederim.
      Verdiğiniz örnek sonsuz kategorileme örneği incelediğim kadarıyla.

      Burada uyarlamam gereken anakategoriyi başlık içeriğide alt kategori şeklindemidir.(Mantık)
      Şu sorun var ki alt ve ana kategoriler aynı foreach içinde dönüyor.
      Bunu başlıkları ayrı içeriği ayrı döndürmek istiyorum ancak tabiki birbiriyle bağdaşık olarak.

      Şurada da aynı sorundan bahsetmiştim ama bir sonuca varamamıştım.
      http://www.uzmansorusu.com/soru/3421/kategoriye-ait-konulari-listeletme
      11 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      join ile sql kullanarak dediğin yapılır. Ancak hiç kimsenin oturup sıfırdan bir örnek yazacağını sanmıyorum. hazır örnekte bulmak zor çünkü bu size özel bir durum-istek...

      Uğraşırsanız yapılmayacak bir şey yok. Ancak yaptığınız şeyin mantıklı olup olmadığını tartmanız ve size getirisi götürüsünden çok ise yapmanız gerekir işte ozaman o mantıklı şeyi yazmak kolay ve zevklidir.

      Kategorileri Array/dizi haline getirip sonra onu istediğin şekilde kullanarak dediğin yapılabilir.
      11 yıl önce yazılmış
    • b4d3k35 adlı üyenin fotoğrafı b4d3k35
      Anladım,İlginiz ve cevaplarınız için teşekkür ederim Hocam.
      11 yıl önce yazılmış
  • b4d3k35 adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    10 cevap - 18 soru
    Ajax tab örneği gördüm fakat Tab başlıkları statik html yapı şeklinde.
    Ben istiyorum ki,

    Başlıkları ve text tamamen veritabanından çeksin.Ancak başlıkları farklı döngüde texti farklı döngüde yazdırayım.
    • zyber adlı üyenin fotoğrafı zyber
      Söylediğin şey ile verdiğim örnek aynı şey...
      Sadece başlıkları MySqlden bir döngü ile alacaksın okadar
      11 yıl önce yazılmış