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
Hej

Hvis jeg har forstået dig rigtigt, så mangler du et where parameter, så du kun får dem du skal have..

Fold kodeboks ind/udSQL kode 


edit:

Jeg prøvede lige at optimere din kode lidt... det er gjort i Notesblok, så er ikke 100% sikker på syntaksen - det er lang tid siden, jeg selv har brugt PHP, men du kan vel få en idé om hvad jeg mener :)

Fold kodeboks ind/udPHP kode 





Indlæg senest redigeret d. 17.04.2011 20:34 af Bruger #16372
Nå ja, kan da godt se at det du gør der ødelægger det...

Fold kodeboks ind/udPHP kode 


Sådan ville jeg gøre det... for at det skal virke med at få vist alle undersider fra et subject, skal den altid have subject id..

Se evt. også den rettelse jeg skrev i mit sidste indlæg :)




Indlæg senest redigeret d. 17.04.2011 15:04 af Bruger #16372
Det jeg mener med standardsider er, at du vil vel ikke have, at man skal få tomme sider, til at man har valgt først et subject og så en page?

Det kommer selvfølgelig helt an på, hvordan det bruges, men som jeg forstår det, så er det meningen at man starter et sted, hvor man kan vælge mellem subjects, der så hver indeholder x antal pages?



Lige i sådanne et tilfælde skal der kun være ét =-tegn.. til gengæld mangler der en slutparentes..

Fold kodeboks ind/udPHP kode 


Det beklager jeg - dumme sjuskefejl :)





Tak for dit hurtige svar, jeg har forsøgt dette før men stoppede der da jeg fik denne mysql error:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\mycms\includes.php\PageAndModuleData.php on line 25

Men derfor er det ikke nødvendigvis forkert jo, blot har jeg udeladt noget evt..

Linierne hvor fejlene peger hen er som følger:
Fold kodeboks ind/udPHP kode 


Jeg er ikke flere års erfaring i php og mysql, så jeg kan ikke se hvilket parameter der menes?

Siden vises slet ikke, efter dette er tilføjet, altså "WHERE"...

OPDATERING PÅ SIDSTE BESKED:

Ok, jeg havde skrevet lidt forkert med ' og " \ osv, men nu vises min side.

Dog på denne måde at undersiderne slet ikke vises, ligemeget hvilket hovedlink - "SUBJECT", der er klikket?

Kan det være oppe i toppen, hvor jeg bestemmer hvilket side der skal vises?
Fold kodeboks ind/udPHP kode 


På denne måde, vil pageid så ikke altid være = NULL, når et subject er valgt?

Det skal vel inkluderes at de "rigtige pages" vises, når et subject er valgt? Og ikke er = NULL.

MVh, Jan



Indlæg senest redigeret d. 17.04.2011 14:38 af Bruger #16555
Ja jeg nulstiller jo samtlige pages før de får en chance for at blive vist :D

Jeg ser dine ændringer, men må indrømme at jeg med mit relativt begrænsede erfaringsniveau, spejder lidt efter at se hvad der så skal kodes ind der hvor du skriver flg:
Fold kodeboks ind/udPHP kode 


Jeg har rodet lidt rundt i dette i nogen dage nu, og er så småt ved at være ør i hovedet :-)

Hvad menes med subject standardside?
Og standardsider..?

Jeg har tilladt mig at sætte spørsgmålstegn ved ovenstående kode, hvor du har skrevet dine forslag, der hvor jeg ikke kan gennemskue hvad der skal laves istedet for :$

OPDATERING PÅ INDLÆG:
Jeg læser lige hele din kode igennem fra sidste indlæg, da jeg helt havde overset dine ændringer!



Indlæg senest redigeret d. 17.04.2011 15:41 af Bruger #16555
Jo helt korrekt, jeg skulle gerne have en landingsside, indexside.

Din kode ser fin ud, og bedre end mit eget :-)

Jeg har dog en syntax fejl i sidste. linie i nedenstående, eller før som jeg ikke kan se?
Fold kodeboks ind/udPHP kode 


FLG ERROR:

Parse error: syntax error, unexpected '{' in C:\wamp\www\mycms\index.php on line 21
Fold kodeboks ind/udPHP kode 





Indlæg senest redigeret d. 17.04.2011 16:16 af Bruger #16555
Har skrevet et = for meget :o!



Arh...Jeg får dog stadig fejlen, den klager over at der er en uventet {

Men den skal da være der når det er nogen conditions der bliver sat ikke?

Altså på denne linie, eller muligvis før denne:
Fold kodeboks ind/udPHP kode 

Den sidste {, skaber problemer... :-)

Jeg ville ønske jeg kunne se det, men jeg har ikke benyttet mig af PH særlig længe og det er mit første større projekt..Tro mig der har været MANGE lignende fejl det sidste lange stk. tid, og når de blir rettet, så var det bare næsten intet der skulle laves om :-)

Selv. lige bortset fra alt den kode du lige optimerede, jeg kan godt se at det er meget bedre, hvis bare jeg kunne få det til at virke :-)



Indlæg senest redigeret d. 17.04.2011 16:33 af Bruger #16555
hehe, Det er mere end ok - Jeg sætter stor pris på din hjælp!

Jeg håber jeg en dag også kan skrive kode og gennemskue det hele, men det kommer vel med tiden, hvis man hænger i og lærer af sine fejl :-)

Jeg prøvede lige at kommentere alt dit ud, og benytte mig af mit eget, og indsatte $subjectid i querien ved pages, og så virkede det fint, de rigtige pages blev vist. MEN.....Når man så klikkede på en af page links så forvandt de alle, dvs page navigation = GONE :-)

Så efter en page var "set", var de "unset" goood :-)

Jeg prøver med dit igen..



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