Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> struktura drzewiasta
lukier
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.02.2005

Ostrzeżenie: (0%)
-----


chciałbym skonsultować pewien mój pomysł odnośnie trzymania i zarządzania artykułami w bazie (CMS), wymyśliłem coś takiego:

tabela articles, pola:
id INT (PK)
parent INT - id ojca artykułu, badź null gdy strona głowna
children TEXT - id dzieci artykułu separowane dwukropkami, badź pusto
typ INT - typ (artykuł, dział, link do innego id itp)
autor INT, tytul TEXT itp

łatwo jest to prezentować jako drzewko w panelu administracyjnym strony,
łatwo też wygenerować "pasek nawigacyjny" na stronie lecz chciałbym
poznać opinie forumowiczów odnośnie takiego rozwiązania
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
acztery
post
Post #2





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


  1. <?
  2.  
  3. // url.class.php
  4. $o=$_GET[&#092;"o\"];
  5. $c=intval($_GET[&#092;"c\"]);
  6. $start=intval($_GET[&#092;"start\"]);
  7. $defaultorder=intval($cat[&#092;"defaultorder\"]);
  8. if ($defaultorder<|| $defaultorder>3) $defaultorder=0;
  9. if (($o<&& $o>3) || !isset($o)) $o=$defaultorder;
  10.  
  11. $r=mysql_query(&#092;"SELECT name,html FROM \".$db[\"prefix\"].\"templates;\") or die(mysql_error());
  12. while ($a=mysql_fetch_assoc($r)) $TMPL[$a[&#092;"name\"]]=$a[\"html\"];
  13.  
  14. function ShowParts($cid) {
  15.     GLOBAL $cat,$TMPL,$db;
  16.  
  17.     $r=mysql_query(&#092;"SELECT name,cid,count FROM \".$db[\"prefix\"].\"cat WHERE parent='$cid' ORDER BY name\") or die(mysql_error());
  18.     $num=0;
  19.     $cnt=mysql_num_rows($r);
  20.     if ($cnt==0) return;
  21.     print $TMPL[&#092;"partstop\"];
  22.     for ($i=0;$i<$cnt;$i++) {
  23.         $num++;
  24.         if ($num==1) print $TMPL[&#092;"partsdelimtop\"];
  25.  
  26.         $template=$TMPL[&#092;"partsbit\"];
  27.         $template=str_replace(&#092;"%CTITLE\",mysql_result($r,$i,0),$template);
  28.         $template=str_replace(&#092;"%CID\",mysql_result($r,$i,1),$template);
  29.         $template=str_replace(&#092;"%CCOUNT\",mysql_result($r,$i,2),$template);
  30.         print $template;
  31.             }
  32.        
  33.     }
  34.     
  35.     
  36.     $pp=10;
  37.     $cid=$c;$l=&#092;"\";
  38.     do {
  39.         $r=mysql_query(&#092;"SELECT parent,name,cid FROM \".$db[\"prefix\"].\"cat WHERE cid='$cid';\") or die(mysql_error());
  40.         if (mysql_num_rows($r)==1) {
  41.             $id=mysql_result($r,0,2);
  42.             $title=mysql_result($r,0,1);
  43.             if ($cid==$c)
  44.                 $l=mysql_result($r,0,1).$l;
  45.             else
  46.                 $l=&#092;"<a class=bold href=./?c=\".$id.\">\".$title.\"</a> &raquo; \".$l;
  47.             $cid=mysql_result($r,0,0);
  48.             }
  49.         else $cid=0;
  50.         } while ($cid!=0);
  51.     $r=mysql_query(&#092;"SELECT name FROM \".$db[\"prefix\"].\"cat WHERE cid='$c';\") or die(mysql_error());
  52.     if (mysql_num_rows($r)!=0) $title=mysql_result($r,0,0).&#092;" / \".$CATNAME;
  53.     else $title=$CATNAME;
  54.  
  55.  
  56.  
  57. ?>


Wywołanie adresu :
  1. <?php print &#092;"$CATNAME $l\"; ?>


Wywołanie drzewka
  1. <? ShowParts($c); ?>


Struktura bazy

  1. --
  2. -- Struktura tabeli dla `a4_cat`
  3. --
  4.  
  5. CREATE TABLE `a4_cat` (
  6. `cid` int(11) NOT NULL AUTO_INCREMENT,
  7. `name` text,
  8. `parent` int(11) DEFAULT NULL,
  9. `count` int(11) DEFAULT '0',
  10. PRIMARY KEY (`cid`)
  11. ) TYPE=MyISAM AUTO_INCREMENT=1212 ;
  12.  
  13. -- --------------------------------------------------------
  14.  
  15. --
  16. -- Struktura tabeli dla `a4_templates`
  17. --
  18.  
  19. CREATE TABLE `a4_templates` (
  20. `name` varchar(16) NOT NULL DEFAULT '',
  21. `html` text NOT NULL,
  22. `parent` int(11) NOT NULL DEFAULT '0',
  23. PRIMARY KEY (`name`)
  24. ) TYPE=MyISAM;


w parametrze $c przenosiny Id kategori

To tyle jeśli chodzi o drzewka

Ten post edytował acztery 30.03.2005, 12:59:13
Go to the top of the page
+Quote Post

Posty w temacie
- lukier   struktura drzewiasta   6.02.2005, 02:44:23
- - bela_666   Spójrz na wortal, eZ ma możliwość zagnieżdzania fo...   6.02.2005, 03:08:22
- - lukier   o dzewkach czytałem troche (Cormen,Knuth) lecz nie...   6.02.2005, 11:47:14
- - halfik   children TEXT - id dzieci artykułu separowane dwuk...   6.02.2005, 22:14:14
- - bendi   Cytat(halfik @ 2005-02-06 23:14:14)a o drzewk...   7.02.2005, 09:19:13
- - hawk   Cytat(lukier @ 2005-02-06 11:47:14)o dzewkach...   7.02.2005, 09:51:08
- - lukier   Cytat(hawk @ 2005-02-07 08:51:08)No i co z te...   7.02.2005, 22:20:03
- - Krolik   CytatJak myślisz, kto pracuje np. w Oraclu nad roz...   9.02.2005, 14:23:01
- - acztery   [PHP] pobierz, plaintext <? // url.class.p...   30.03.2005, 12:57:19
- - hawk   @acztery:   30.03.2005, 14:58:52
- - acztery   nie kumam ? coś źle?   30.03.2005, 15:14:18
- - Vengeance   @acztery: sorry, nie mam czasu zgłębiać się w kod ...   30.03.2005, 17:12:42
- - acztery   zobacz jak działa w niegotowym jeszcze projekcie.....   30.03.2005, 18:38:34
- - darkspirit   @acztery: bo przy takiej ilości wyświetlanych zagn...   30.03.2005, 19:59:06
- - tarlandil   Ja znam 3 rodzaje drzewek: 1) wezel pamieta tylko...   29.04.2005, 08:28:43
- - Ace   Tez mam problem ze struktura drzewiasta... Musze ...   29.04.2005, 09:21:39
- - ebe   W moim przypadku trzymam drzewo w bazie stosując a...   29.04.2005, 15:54:57
- - radziel   Cytat(ebe @ 2005-04-29 16:54:57)jeśli w panel...   1.05.2005, 09:07:02
- - ebe   CytatTutaj ujawnia się dla mnie dość istotna wada,...   1.05.2005, 10:03:48
- - chmolu   System, którego używa acztery jest korzystny przy ...   1.05.2005, 16:55:35
- - Seth   Do tej drugiej metody, opisywanej na sitepointcie,...   1.05.2005, 23:01:08
- - ebe   Dzięki za arta nt. drzewek bardzo się przydał, a m...   4.05.2005, 11:52:52


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 10:18