Şimdi Ara

PHP CLASS ILE SINIRSIZ KATEGORILERI LISTELEME SORUNU!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
1.152
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar. Bir konu ile ilgili size danışmak istiyorum. Php class yapısıda yeniyim ve sitemde bulunan kategorileri listelemem gerekiyor.
    Sql sorguları , fetch_assoc yapısı v.s hepsi oluşturduğum sınıf yapısınının içinde . Normalde sql sorgusu çalışmasına rağmen kategori listeleme aşamasında sorun veriyor. Ya bilgisayar kitleniyor yada sorgu sadece ilk kategoriyi döndürüp bırakıyor. Konuyu internette aramama rağmen sınıf yapısı olarak bişey göremedim. Normalde sınıf dışındaki bir fonksiyonun sınıf içinde de aynı şekide çalışması gerekiyor ama olmuyor. Sanırsam sorun sql_sorgusundan kaynaklı ama yinede tam olarak çözemedim. Lafı çok uzattım affınıza sığınıyorum. Fakat projenin neredeyse dönüm noktalarından biri burası.

    Örnek veri tabanı
    tablo adı kategoriler

    |ID| KategoriAdi | KatID |
    ------------------------
    |1 | Bilgisayarlar | 0 |
    ------------------------
    |2 | Çevre Birim. | 0 |
    ------------------------
    |3 | Oem | 2 |
    -------------------------
    |4 | Kutu Ürünleri | 3 |

    ... v.b

    sınıf yapısına gelincede

    PHP- Kodu:
    class vt {
    private $sunucu="localhost";
    private $kullanici="***";
    private $sifre="***";
    private $slct_adi="proje";
    public $baglanti;
    public $sql=NULL;
    /*** Veritabanı bağlantısı yapılır.*/
    public function baglan() { // Veritabanı sunucusuna bağlan
    $this->vt_baglanti = mysql_connect($this->sunucu, $this->kullanici, $this->sifre);
    // Veritabanı sunucusu ile bağlantı gerçekleşti ise istenen veritabanını seçili hale getir
    if (is_resource($this->baglanti)) {
    mysql_select_db($this->slct_adi);
    mysql_query("SET NAMES UTF8");
    / [MENTION=34498]MySQL[/MENTION]_query("SET NAMES 'utf8'"); [MENTION=34498]MySQL[/MENTION]_query("SET CHARACTER SET UTF8"); //dil secenekleri [MENTION=34498]MySQL[/MENTION]_query("SET COLLATION_CONNECTION = utf8_turkish_ci");
    }
    }
    /*** Kurucu yöntem. Burada ilklendirme işlemleri yapılır.*/
    public function __construct(){
    $this->baglan();
    }
    public function sorgu($sql){
    //return(mysql_query($sql,$this->baglanti));
    return($this->sql=mysql_query("$sql",$this->baglanti));
    }

    Buraya kadar herşey normal çünkü sorguları bu şekilde başka sayfalarda kullanıyorum
    Fakat film burada kopuyor.

    PHP- Kodu:

    class kategori_menu extends vt{
    function kategori($id = 0, $string = 1){
    $query = $this->sorgu("select * from `kategoriler` where KatID= '$id'");
    if (mysql_affected_rows()){
    echo '<ul>';
    while ($row = $this->fetch_assoc($this->sql)){
    echo '<li><div class="icon"></div><a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=77858915&url=deneme.html" data-href="deneme.html">'.str_repeat('-',$string).$row["KategoriAdi"].'</a></li>';
    $this->kategori($row["ID"], $string + 1);
    }
    echo '</ul>';
    }else{
    return false;
    }
    }

    $kategori=new kategori_menu();
    $kategori->kategori();


    ve bunun gibi denediğim belki abartısız 10 dan fazla kategori listeleme fonksiyonu ama sonuç hüsran.

    Bu konu hakkında yardımlarınıza ihtiyacım var. Şimdiden herkese teşekkür ederim.







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.