[Linux-programlama] Re: Veritabanında matriks benzeri sıralama sorunu

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Sefa Arslan (sefa@higgs.gen.tr)
Date: Tue 15 May 2007 - 02:11:56 EEST


Yanlis bilmiyorsam Typo3 de benzer bir sekilde calisiyor, ancak onda bi
farklilik var, o her sayfa icin (sayfa indekslemesi icin) sadece iki
bilgi tutuyor: sayfanin numarari, sadece bir ust sayfanin numarasi
ornek vermek gerekirse:

0 domain
        1. Anasayfa
        2. Geziler
               a Yurtiçi Geziler
               b Yurtdışı Geziler
                     b.1 bbbbbbb
                     b.2 aaaaa
      3. İletişim
           a Ana Bayii
           b Şubeler
      4. Hakkımızda
      5. Yerler

p_id u_id title
0 0 domain
1 0 Anasayfa
2 0 Geziler
3 0 İletişim
4 0 Hakkımızda
5 0 Yerler
6 2 Yurtiçi Geziler
7 2 Yurtdışı Geziler
8 3 Ana Bayii
9 3 Şubeler
10 7 aaaaa
11 7 bbbbbbb

boylece istedigin sayfayi istedigin an digerinin altina tasiyabilir ve
istedigin kadar alt sayfa uretebilirsin. hatta bi guzellik daha yapip
sayfalarin icinde gosterecegin icerigide ayni olamasada benzer bir
mantikla db ye kaydedebilirsin. bence Typo3'nin database kayit mantigini
biraz incele..

sayfalarin acilmasini hizlandirmak icinde daha onceden ulasilmis
sayfalari yada icerikleri daha kucuk bir cache tablosuna kopyalayip,
cache de olan sayfalari oradan olmayanlarida asil tablodan cagirabirsin..

Sefa

asdh jkhdsakd wrote:
> İyi Günler,
> Aşağıdaki menü düzeni için
>
> 1. Anasayfa
> 2. Geziler
> a Yurtiçi Geziler
> b Yurtdışı Geziler
> 3. İletişim
> a Ana Bayii
> b Şubeler
> 4. Hakkımızda
> 5. Yerler
>

> Yukarıdaki menu ve alt menu elmanlarını veritabanına aşağıdaki gibi kaydettim.
>
> no kategoriler sira izin kat1 kat2 kat3 ait
> 1 Anasayfa 10 1 0 1 1 1
> 2 Geziler 20 1 0 1 1 2
> 3 İletişim 30 1 0 1 1 3
> 4 Hakkımızda 40 1 0 1 1 4
> 5 Yerler 50 1 0 1 1 5
> 6 Yurtiçi Geziler 21 1 1 0 1 2
> 7 Yurtdışı Geziler 22 1 1 0 1 2
> 8 Ana Bayii 31 1 1 0 1 3
> 8 Şubeler 32 1 1 0 1 3
>
> Sorgusu
> SELECT * FROM `kategoriler` WHERE `izin` = 1 ORDER BY `ait`, `kat1`,
> `kat2` ASC LIMIT 25;
>
> <ul id="menu">
> <?php
> while ($row = mysql_fetch_object ($sonuc)){
> $sonyazi ="";
> if (!$row->kat1){
> if ($p) {print "</ul>\n";}
> else{ }
> ?>
> <li><a href='javascript:ajaxKullan(<?php print ($row->no);?>)'><?php
> print ($row->kategoriler);?></a>
> <?php
> }
> else {
> if ($p) {
> $sonyazi="</li>\n";
> }
> else{
> $sonyazi="";
> print "\n<ul>";}
> ?></li>
> <li><a href='javascript:ajaxKullan(<?php print ($row->no);?>)'><?php
> print ($row->kategoriler);?></a><?php
> }
> $p=$row->kat1;
> print $sonyazi;
> }
> mysql_free_result($sonuc);
> ?>
> </ul>
> Yukarıdaki gibi bir php script yazdım. Amacım tamamen dinamik, hızlı
> ve tamamen değiştirilse bile yapısını bozmayan tipte olmasıydı. Şu an
> düzgün çalışıyor. Daha fazla hızlandırmak ve sira numarasını
> değiştirildiğinde ve yeni kayıt girildiğinde yapısını bozmamasını
> istiyorum. Bu konu hakkında veya başka bir önerisi olan varsa lütfen
> benimle paylaşınız.
> Şimdiden teşekkür ederim.
> İyi çalışmalar dilerim.
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.