PHP/MySQL - Mit lille CMS - Spørgsmål mht opbygning af navigation

Tags:    php mysql

<< < 12 > >>
Hej Alle,

Jeg er ved at lave et mindre CMS som jeg vil benytte som backend til at lave hjemmesider med.

Alt indhold kommer fra databasen.

I databasen har jeg to tabeller:
1)"SUBJECTS" (Den skal fungere som en global horisontal navigation, og vises fint pt.)
2)"(PAGES)" (Den skal vises som en sub.navigation i venstre side, og lige nu vises alle pages(Undersider))

Mit problem er:
Lige nu, har jeg trukket ALLE SUBJECTS ud, fra databasen. Hvilket er meningen.
MEN også ALLE PAGES, dvs. mine undersider - De vises også ALLE sammen. Jeg vil gerne lave det sådan at når jeg klikker på et SUBJECT, så vises KUN de relevante undersider, i min venstre "under-menu".

For at kunne binde de to tabeller sammen, har jeg i databasen oprettet en række i tabellen "PAGES", som hedder "SUBJECTID". Det er en integer, og den refererer til det unikke ID hver enkelt række i tabellen "SUBJECTS" har.

Som jeg ser det, vil det også være nødvendigt at ændre i den første kode jeg viser jer her nedenfor. Samt mine database forespørgsler vil jeg tro.

Her kommer min kode. Som det første har jeg en lille kode der bestemmer om enten et subject, eller en page er blevet valgt/klikket.
Fold kodeboks ind/udPHP kode 


Herefter opbygger jeg navigationen, vedr. "SUBJECTS" - Altså hovedsiderne.
Fold kodeboks ind/udPHP kode 


Herefter opretter jeg navigationen for mine undersider, altså "PAGES", på præcis den samme måde:
Fold kodeboks ind/udPHP kode 


På denne måde, har jeg lavet navigationens, som virker fint, til både "SUBJECTS" samt "PAGES".

Bortset fra at alle undersider vises..

Nede i HTML koden på selve siden, der echo'er jeg navigationen ud på denne måde, hvilket naturligvis resulterer i, at ALLE "PAGES/UNDERSIDER", vises, og ikke kun de relevante for hvert "SUBJECT".
Fold kodeboks ind/udHTML kode 


I min LEFT DIV: Skal der ikke på en eller anden måde ændres noget i variablen: $PageMenuDisplay?

Den kan I som skrevet se, inde i opbygningen af navigationen til "PAGES", se hvad den indeholder, ifht min query til databasen, hvor jeg IKKE helt er klar over hvordan jeg skal forspørge, for kun at få vis de relevante undersider, ifht hvilket subject der er klikket.

Jeg har måske gentaget mig selv et par gange, men det er for at tydeligere hvad det drejer sig, om så det er til at gå til.

Det er næsten det sidste jeg mangler for at få det til at fungere, så det kribler i fingrene for at komme i gang, og over denne stopklods.. :-)

Jeg ser frem til at høre fra nogen af jer, der måtte have erfaring med dette.

Mvh,
Jan Klemmensen
















19 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Har du tilpasset, det hvor du sætter variablerne til at starte med? Det lyder som om at $subjectid stadig er null når der er valgt en page..



Hmm PAGES navigation forsvinder efter den er klikket på, lige meget hvordan jeg laver rod i den :-)

Lige nu har jeg flg kode som viser d korrekte pages til hvert subject, Perfekt :-) Og det korrekte indhold ($pagebody) er også med osv.

Men efter et page link er klikket, forsvinder navigationen, dvs efter den er set, er den gone igen. Klikker man så igen på subject, kommer page navigationen frem igen.

Dette sker med flg kode.
Fold kodeboks ind/udPHP kode 

Subject navigation:
Fold kodeboks ind/udPHP kode 

Page navigation, som forsvinder efter at være blevet klikket:

Fold kodeboks ind/udPHP kode 


Egentlig virker det nu, efter jeg gjorde som du sagde, med at ændre denne query:
Fold kodeboks ind/udSQL kode 

Perfekt, så langt så godt :-)

Så fejlen i mit eksisterende script, ligger den ikke udelukkende oppe i det lille script, hvor jeg (forsøger..) at bestemme hvilken page eller subject der er valgt?

SUBJECT er stadig = NULL,

Jeg har forsøgt at skrive:
Fold kodeboks ind/udPHP kode 

Men det ændrer jo ikke rigtig på så meget.. :-/

Det er vel de standard værdier som du skrev længere oppe i den voksende roman..

Som sagt prøver jeg mig lidt frem, så jeg undskylder hvis det er helt dumme spørgsmål jeg stiller.. :-)

Forresten, jeg echoer page nav ud således, hvis det kan hjælpe med det hele :-)
Fold kodeboks ind/udHTML kode 

Kan jeg også her skrive noget med at:
Fold kodeboks ind/udPHP kode 

I forlængelse deraf, sådan at hvis subject er set, echo page nav, og derefter hcis pages er set, så bliv lige ved med at echo page nav igen....?
:-)

OPDATERING PÅ SIDSTE INDLÆG:

Nej jeg er ikke super god til at tilpasse det, så subject er stadig null, har forsøgt, men jeg skriver det på en forkert måde igen igen..



Indlæg senest redigeret d. 17.04.2011 17:33 af Bruger #16555
Prøv med


Fold kodeboks ind/udPHP kode 



Men lige et sidespring - er en ikke defineret $_GET[""] ikke altid NULL?



Okay, altså nu har jeg sat dette ind:

Fold kodeboks ind/udPHP kode 


Og det giver mig så flg. efter at have klikket på et link:

Notice: Undefined variable: pagebody in C:\wamp\www\mycms\index.php on line 78

Line 78 ser således ud: hele koden for sidens body = indhold...
Fold kodeboks ind/udPHP kode 


Jeg er nok ikke den rigtige at spørge, mht dit spørgsmål:
Men lige et sidespring - er en ikke defineret $_GET[""] ikke altid NULL?

Det vil jeg mene jo :-)

Men der er mange ting jeg ville mene var rigtigt indenfor mine sjove queries osv, som ikke virker ;-)

Local nav er stadig væk efter klikket OG sidens (den klikkede page) indhold vises ikke, men laver ovenstående fejl?










Enten

Fold kodeboks ind/udPHP kode 


og ellers
Fold kodeboks ind/udPHP kode 


som det aller første inden du sender forespørgsler til databasen




Jeg må erkende at det roder en del rundt...lige meget hvordan jeg skriver det, så får jeg tilsyneladende lavet det forkert.

Dvs. nu kan jeg godt klikke på subjects, og se indholdet af subjects.

Og når et subject er klikket, kan jeg fint se de relevante links til det valgte subject.

Efter et page link er klikket, så vises indholdet til den valgte page fint på siden.

Men Page navigationen forsvinder som sagt.

Jeg er ude hvor jeg ikke helt kan finde rundt, men jeg er ikke i tvivl om at det er ganske lidt der skal til for at fikse det :-/

Jeg må rode lidt mere rundt og se hvad der sker med det :-)

Mange tak for inputs so far, rigtig fedt!

OPDATERING PÅ SIDSTE INDLÆG:


Prøver lige en gang mere for i aften:

Lige nu har jeg brugt det du skrev, men jeg får adskillige fejl, og siden vises ikke.
fejl:
Notice: Undefined index: subjectid in C:\wamp\www\mycms\index.php on line 48:
Fold kodeboks ind/udPHP kode 


fejl:
Notice: Undefined variable: SubjectMenuDisplay in C:\wamp\www\mycms\index.php on line 80

fejl:
Notice: Undefined variable: PageMenuDisplay (Dvs der hvor den bliver echo'et ud.i html'en)

fejl:
Notice: Undefined variable: subjectbody (Dvs der hvor den bliver echo'et ud.i html'en)

Er disse NOTICE, ikke egentlige fejl? Hvis jeg fjerner notices,vil siden så være korrekt, altså vil koden være ok?

Resten af min kode er som følger, pt:
Fold kodeboks ind/udPHP kode 


Ser det rigtigt ud som ovenstående?

:-)

Jeg ved godt jeg er umulig!

Jeg smed dette i toppen af siden, og nu kan siden ses:
Fold kodeboks ind/udPHP kode 

Men hverken med pagebody til subjects, og pages/links er helt væk..
Det er med ovenstående side, præcis som den står.

Jeg sætter stor pris på, hvis du/eller andre gider bruge tid på det, og kan finde ud af hvorfor det ikke fungerer sådan.

Jan





Indlæg senest redigeret d. 17.04.2011 20:00 af Bruger #16555
Hvis nu du i din database lavede relationer imellem de subjects, som hørte til de specifikke sider, så kan du jo bare hente de pages, som har en relation til det specifikke subject?



Prøv at rette linie 20 og 21 til:

$pagebody = "";
$pagetitle = "";
$subjectbody = "";
$subjecttitle = "";
$SubjectMenuDisplay = ""
$PageMenuDisplay = "";

Så er du i hvert fald sikker på at de er definererede...

linie 30
if ($subjectid == $row["id"])







Ja men de er også hentet, via en relation.

Men når jeg klikker på en page, linket, så forsvinder resten af pages - navigationen, og mit problem er at få den til at blive der..

Jeg har ikke så meget erfaring endnu, så jeg er lidt rundtosset mht at få lavet de små, og sikkert indlysende justeringer :-)

Jeg kunne vel også benytte mig af join, i database query, men har heller ikke arbejdet med det før, så skal lige tænke mig om og finde hovede og hale i det :-)

Opdatering:

Ok Done!

Haha, så forsvandt siden, og der kom en hvid skærm, My god mand! :-)




Indlæg senest redigeret d. 17.04.2011 20:42 af Bruger #16555
<< < 12 > >>
t