/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hierakisk menu, niveau felt?
Fra : Tinky Winky


Dato : 03-07-02 13:20

Jeg har en hierakisk menu - en træstruktur, som bruges til en navigations
menu.

Det virker OK, men jeg vil gerne vide på hvilket niveau en bestemt kategori
er. Det skal bruges til at vise menu'en grafisk, hvor undermenuer står
"længere inde" jo dybere niveau de er på. Desuden kunne jeg godt tænke mig
at kunne vise placering ala Yahoo, fx: "Home > Computers and Internet >
Internet", hvor Internet ligger under Computer and Internet kategorien, som
igen ligger under "roden" Home.

Er det bedst at lave en PHP/MySQL algoritme til at finde ud af det, eller er
det bedre at have et felt til hver kategori, der angiver det hierakiske
niveau?



 
 
-Martin- (04-07-2002)
Kommentar
Fra : -Martin-


Dato : 04-07-02 00:52

On Wed, 3 Jul 2002 14:20:27 +0200, "Tinky Winky"
<lksjdflkjzsdhflkajshrlkjaeshr@ksjdhskjdhfkshdfkshdf.com> wrote:

>Jeg har en hierakisk menu - en træstruktur, som bruges til en navigations
>menu.
>
>Det virker OK, men jeg vil gerne vide på hvilket niveau en bestemt kategori
>er. Det skal bruges til at vise menu'en grafisk, hvor undermenuer står
>"længere inde" jo dybere niveau de er på. Desuden kunne jeg godt tænke mig
>at kunne vise placering ala Yahoo, fx: "Home > Computers and Internet >
>Internet", hvor Internet ligger under Computer and Internet kategorien, som
>igen ligger under "roden" Home.
>
>Er det bedst at lave en PHP/MySQL algoritme til at finde ud af det, eller er
>det bedre at have et felt til hver kategori, der angiver det hierakiske
>niveau?
>

Lyder meget som et forum du ska have fat i her næsten, eller i
hvertfald thread

-Martin- (04-07-2002)
Kommentar
Fra : -Martin-


Dato : 04-07-02 00:52

On Wed, 3 Jul 2002 14:20:27 +0200, "Tinky Winky"
<lksjdflkjzsdhflkajshrlkjaeshr@ksjdhskjdhfkshdfkshdf.com> wrote:

>Jeg har en hierakisk menu - en træstruktur, som bruges til en navigations
>menu.
>
>Det virker OK, men jeg vil gerne vide på hvilket niveau en bestemt kategori
>er. Det skal bruges til at vise menu'en grafisk, hvor undermenuer står
>"længere inde" jo dybere niveau de er på. Desuden kunne jeg godt tænke mig
>at kunne vise placering ala Yahoo, fx: "Home > Computers and Internet >
>Internet", hvor Internet ligger under Computer and Internet kategorien, som
>igen ligger under "roden" Home.
>
>Er det bedst at lave en PHP/MySQL algoritme til at finde ud af det, eller er
>det bedre at have et felt til hver kategori, der angiver det hierakiske
>niveau?
>

Hmmm ... Ja okaj sendte TEMMELIG alt for hurtigt ... anyway ... vi kom
fra threads...

Jo ..

Prøver at sætte det lidt op ...

Om mig
- Mine referencer
- Personlige ting
- CV
Links
- Yahoo
- Yahoo | Groups
- Google
- Google | Groups


Sådan kunne det se ud ...

databasen kunne have følgende indhold

id - parent_id - Navn - sti_link - (og andet)

Nå ... ja ID er jo bare ren autoincrement ... så den kan man ikk gøre
så meget ved

parent_id = 0 så er det en hovedgruppe (fx Links eller Om Mig)

Så kunne "om mig" få ID 1

Dvs
ID - parent_id - Navn - sti
1 - 0 - Om mig - ommig.php

Ja så ska vi have en undergruppe ind

ID 2
paren_id : 1 (altså ref. fra den ID den ska ligge under)
navn : mine referencer
sti : referencer.php


Og ja .. så ska du bare lave en funktion der sætter det hele pænt op


Men nu har du hvordan jeg ville lave det (og har lavet det flere
gange)

Tinky Winky (05-07-2002)
Kommentar
Fra : Tinky Winky


Dato : 05-07-02 16:54

snip
> Og ja .. så ska du bare lave en funktion der sætter det hele pænt op
>

Det er her humlen ligger.

Jeg har også flere gange lavet en simpel træstruktur med id, parent og
diverse data i hver row.

Men problemet er, at når man skal vise det grafisk, så er det rart at vide i
hvilket niveau tingene ligger. Det kan man enten gøre ved at regne det ud
hele tiden, med en masse SELECT sætninger og forskelligt, eller også kan man
skrive det i et felt i databasen, som så selvfølgelig hele tiden skal være
opdateret.



-Martin- (06-07-2002)
Kommentar
Fra : -Martin-


Dato : 06-07-02 00:38

On Fri, 5 Jul 2002 17:54:17 +0200, "Tinky Winky"
<lksjdflkjzsdhflkajshrlkjaeshr@ksjdhskjdhfkshdfkshdf.com> wrote:

>snip
>> Og ja .. så ska du bare lave en funktion der sætter det hele pænt op
>>
>
>Det er her humlen ligger.
>
>Jeg har også flere gange lavet en simpel træstruktur med id, parent og
>diverse data i hver row.
>
>Men problemet er, at når man skal vise det grafisk, så er det rart at vide i
>hvilket niveau tingene ligger. Det kan man enten gøre ved at regne det ud
>hele tiden, med en masse SELECT sætninger og forskelligt, eller også kan man
>skrive det i et felt i databasen, som så selvfølgelig hele tiden skal være
>opdateret.
>

Lige en lidt "rippet" version af en af de vigtigste funktioner i mit
forum <www.natten-i.dk/myforum>

function view_thread($parent,$post_id,$uid,$forum_id) {
static $whitespaces="&nbsp;&nbsp;&nbsp;&nbsp;";
$sql = sql("
SELECT
forum_id,
DATE_FORMAT(dato, '%d-%m-%Y %H:%i%s') as nydato,
afsender,
id,
topic
FROM
posts
WHERE
parent_id = '$parent'
");
while($r = mysql_fetch_array($sql)) {
print $whitespaces." ".$link." ".$r[nydato]."
".$r[afsender]."<br>\n";
$whitespaces = "&nbsp;&nbsp;&nbsp;&nbsp;".$whitespaces;
$daddy=$r[id];
view_thread($daddy,$post_id,$uid,$r[forum_id]);
}
$whitespaces = substr_replace($whitespaces, "", -24);
}

Så kan du prøve at lege lidt med det

Tinky Winky (06-07-2002)
Kommentar
Fra : Tinky Winky


Dato : 06-07-02 22:05

> Lige en lidt "rippet" version af en af de vigtigste funktioner i mit
> forum <www.natten-i.dk/myforum>
>
> function view_thread($parent,$post_id,$uid,$forum_id) {
....

Det er en rekursiv metode. Klart, det er nok det nemmeste. Tak.



-Martin- (06-07-2002)
Kommentar
Fra : -Martin-


Dato : 06-07-02 23:47

On Sat, 6 Jul 2002 23:04:50 +0200, "Tinky Winky"
<lksjdflkjzsdhflkajshrlkjaeshr@ksjdhskjdhfkshdfkshdf.com> wrote:

>> Lige en lidt "rippet" version af en af de vigtigste funktioner i mit
>> forum <www.natten-i.dk/myforum>
>>
>> function view_thread($parent,$post_id,$uid,$forum_id) {
>...
>
>Det er en rekursiv metode. Klart, det er nok det nemmeste. Tak.
>

Ja ... det er en rekursiv metode, men funktionelt - Og om det er
det nemmeste ja .. syns jeg ... Pænest ... Nok ikk html mæssigt
kunne da godt tænke mig noget med <li> osv. meeen kan ikk rigtig se
"fidussen" i hvordan det ska laves endnu ... men tænker og prøver
konstant

Selv tak da

Jakob Møbjerg Nielse~ (07-07-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 07-07-02 12:45

-Martin- wrote:
> Nok ikk html mæssigt

Hvad med en
<div style="position:relative;left:XXpx;white-space:nowrap;">
Overskrift, dato, osv.
</div>

Jeg bruger selv 15px pr. niveau.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man


Jakob Møbjerg Nielse~ (07-07-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 07-07-02 12:40

-Martin- wrote:
> Så kan du prøve at lege lidt med det

Avavavav... der bliver lavet lige så mange SQL-kald, som der er indlæg.
Jeg plejer istedet at bruge en varchar til id:

Indlæg 1:
id = "00000000"

Svar 1 til indlæg 1:
id = "0000000000000000"

Svar 2 til indlæg 1:
id = "0000000000000001"

Indlæs 2:
id = "00000002"

På denne måde er trådene allerede sorterede i databasen, med følgende
begrændsninger:

Tråden kan højst blive 31 niveauer dyb (de allerstørste jeg har set på
usenet var omkring 30)
Hvis der kun bruges tal til id'et (nemmest at regne med), kan der være
99.999.999 tråde, der hver har 99.999.999 svar i niveau 1 og og hvert af
disse kan have 99.999.999 svar i neveau 2 og...

Hvis større dybde kræves, sænkes antallet af tegne pr. indlæg. Ex:
5 tegn pr. indlæg. Der er forskel på store og små bogstaver. Nu kan der
være 51 niveauer og ca. 550.000.000 tråde.

Til gengæld kan alle trådene hentes og sorteres med et enkelt SQL-kald.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man


Christian Hansen (04-07-2002)
Kommentar
Fra : Christian Hansen


Dato : 04-07-02 08:18

Jeg ville ganske enkelt anvende et x,y koordinatsystem. Det har jeg
faktisk gjort i praksis og det er nemt at have med at gøre:

Hvert menupunkt får så en x,y-værdi alt efter, hvor det befinder sig i
strukturen. Flytter man rundt på punkterne, fjerner eller indsætter nye,
ændres x,y værdierne selvfølgelig.

Systemet har den store fordel/ulempe at man kan lave uendeligt mange
niveauer.

Sammen med hvert punkt bør selvfølgelig knyttes en unik id, som bruges
som reference til selve siden, uanset hvor i strukturen den ellers
befinder sig.

MVH Christian


Tinky Winky wrote:
> Jeg har en hierakisk menu - en træstruktur, som bruges til en navigations
> menu.
>
> Det virker OK, men jeg vil gerne vide på hvilket niveau en bestemt kategori
> er. Det skal bruges til at vise menu'en grafisk, hvor undermenuer står
> "længere inde" jo dybere niveau de er på. Desuden kunne jeg godt tænke mig
> at kunne vise placering ala Yahoo, fx: "Home > Computers and Internet >
> Internet", hvor Internet ligger under Computer and Internet kategorien, som
> igen ligger under "roden" Home.
>
> Er det bedst at lave en PHP/MySQL algoritme til at finde ud af det, eller er
> det bedre at have et felt til hver kategori, der angiver det hierakiske
> niveau?
>
>



-Martin- (04-07-2002)
Kommentar
Fra : -Martin-


Dato : 04-07-02 20:14

On Thu, 04 Jul 2002 09:18:22 +0200, Christian Hansen
<webmaster@telescopium.dk> wrote:

Hej Christian

>Jeg ville ganske enkelt anvende et x,y koordinatsystem. Det har jeg
>faktisk gjort i praksis og det er nemt at have med at gøre:

Undskyld, men må man se et eks? (både sovs og side?)

>
>Hvert menupunkt får så en x,y-værdi alt efter, hvor det befinder sig i
>strukturen. Flytter man rundt på punkterne, fjerner eller indsætter nye,
> ændres x,y værdierne selvfølgelig.

Jeg tror ikk rigtig jeg har fattet det der, enten uddyb lige eller
smid et eks

Eller er det stortset det samme som mit "system" ?

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste