login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Boomstructuur

Offline stedem - 10/02/2010 16:08 (laatste wijziging 10/02/2010 16:21)
Avatar van stedemNieuw lid Ik heb een boomstructuur die volledig door ul en li's uitklapt.
De bedoeling is dat wanneer een onderwerp vb uit hoofdgroep 1 geselecteerd is alles van hoofdgroep 2 verborgen blijft.
Dit principe toepassen op alle onderliggende structuren natuurlijk.


  1. <?php
  2. $select_hoofdgroep = mysql_query("SELECT * FROM artikel_menu WHERE hoofdgroep_id = '0' AND groep_id = '0' AND subgroep_id = '0' AND minigroep_id = '0' AND hide = 'no' ORDER BY artikel_naam_$taal ASC");
  3. while ($fetch_hoofdgroep = mysql_fetch_assoc($select_hoofdgroep)) {
  4.  
  5.  
  6. if ($fetch_hoofdgroep['artikel_type'] == "file"){
  7. //
  8. } else {
  9. echo '<li><table border="0"><tr><td width="0"></td><td valign="top"><img src="files/jquery.treeview/images/plus.png" /></td><td valign="top">
  10. <a href="page.php?hg='.$fetch_hoofdgroep['id'].'&gr='.$fetch_hoofdgroep['groep_id'].'&sb='.$fetch_hoofdgroep['subgroep_id'].'&pid='.$fetch_hoofdgroep['id'].'&slct=gr&cnt=n&nav=prod">
  11. '.$fetch_hoofdgroep['artikel_naam'.'_'.$taal].'</a></td></tr></table>';
  12. }////////
  13.  
  14.  
  15. $select_groep = mysql_query("SELECT * FROM artikel_menu WHERE hoofdgroep_id = " .$fetch_hoofdgroep['id'] . " AND groep_id = '0' AND subgroep_id = '0' AND minigroep_id = '0' ORDER BY artikel_naam_$taal ASC");
  16. while ($fetch_groep = mysql_fetch_assoc($select_groep)) {
  17. if ($fetch_groep['artikel_type'] == "file"){
  18. echo '<li><table border="0"><tr><td width="15"></td><td valign="top"><img src="files/jquery.treeview/images/plus.png" /></td><td valign="top">
  19. <a href="page.php?hg='.$fetch_groep['hoofdgroep_id'].'&gr='.$fetch_groep['groep_id'].'&sb='.$fetch_groep['subgroep_id'].'&pid='.$fetch_groep['id'].'&cnt=y&nav=prod">
  20. '.$fetch_groep['artikel_naam'.'_'.$taal].'</a></td></tr></table>';
  21. } else {
  22. echo '<li><table border="0"><tr><td width="15"></td><td valign="top"><img src="files/jquery.treeview/images/plus.png" /></td><td valign="top">
  23. <a href="page.php?hg='.$fetch_groep['hoofdgroep_id'].'&gr='.$fetch_groep['id'].'&sb='.$fetch_groep['subgroep_id'].'&pid='.$fetch_groep['id'].'&slct=sb&cnt=n&nav=prod">
  24. '.$fetch_groep['artikel_naam'.'_'.$taal].'</a></td></tr></table>';
  25. }////////
  26.  
  27.  
  28. $select_subgroep = mysql_query("SELECT * FROM artikel_menu WHERE hoofdgroep_id = " .$fetch_hoofdgroep['id'] . " AND groep_id = " . $fetch_groep['id'] . " AND subgroep_id = '0'
  29. AND minigroep_id = '0' ORDER BY artikel_naam_$taal ASC");
  30. while ($fetch_subgroep = mysql_fetch_assoc($select_subgroep)) {
  31. if ($fetch_subgroep['artikel_type'] == "file"){
  32. echo '<li><table border="0"><tr><td width="30"></td><td valign="top"><img src="files/jquery.treeview/images/plus.png" /></td><td valign="top">
  33. <a href="page.php?hg='.$fetch_subgroep['hoofdgroep_id'].'&gr='.$fetch_subgroep['id'].'&sb='.$fetch_subgroep['subgroep_id'].'&pid='.$fetch_subgroep['id'].'&cnt=y&nav=prod">
  34. '.$fetch_subgroep['artikel_naam'.'_'.$taal].'</a></td></tr></table>';
  35. } else {
  36. echo '<li><table border="0"><tr><td width="30"></td><td valign="top"><img src="files/jquery.treeview/images/plus.png" /></td><td valign="top">
  37. <a href="page.php?hg='.$fetch_subgroep['hoofdgroep_id'].'&gr='.$fetch_subgroep['groep_id'].'&sb='.$fetch_subgroep['id'].'&pid='.$fetch_subgroep['id'].'&slct=sb&cnt=n&nav=prod">
  38. '.$fetch_subgroep['artikel_naam'.'_'.$taal].'</a></td></tr></table>';
  39. } ////////
  40.  
  41.  
  42. $select_minigroep = mysql_query("SELECT * FROM artikel_menu WHERE hoofdgroep_id = " .$fetch_hoofdgroep['id'] . " AND subgroep_id = " . $fetch_subgroep['id'] . " AND minigroep_id = '0'
  43. ORDER BY artikel_naam_$taal ASC");
  44. while ($fetch_minigroep = mysql_fetch_assoc($select_minigroep)) {
  45. if ($fetch_minigroep['artikel_type'] == "file"){
  46. echo '<li><table border="0"><tr><td width="45"></td><td valign="top"><img src="files/jquery.treeview/images/plus.png" /></td><td valign="top">
  47. <a href="page.php?hg='.$fetch_minigroep['hoofdgroep_id'].'&gr='.$fetch_minigroep['groep_id'].'&sb='.$fetch_minigroep['subgroep_id'].'&pid='.$fetch_minigroep['id'].
  48. '&cnt=y&nav=prod">'.$fetch_minigroep['artikel_naam'.'_'.$taal].'</a></td></tr></table>';
  49. }
  50. }
  51. ////////}
  52. }
  53. ////////}
  54. }
  55. ////////}
  56. }
  57. ?>


  1. CREATE TABLE IF NOT EXISTS `artikel_menu` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `hide` varchar(9) NOT NULL DEFAULT 'no',
  4. `artikel_naam_nl` varchar(255) NOT NULL,
  5. `artikel_naam_fr` varchar(255) NOT NULL,
  6. `artikel_type` varchar(99) NOT NULL DEFAULT 'file',
  7. `artikel_afbeelding` varchar(99) NOT NULL DEFAULT 'geen.jpg',
  8. `artikel_samenvatting_nl` text NOT NULL,
  9. `artikel_samenvatting_fr` text NOT NULL,
  10. `hoofdgroep_id` int(11) DEFAULT NULL,
  11. `groep_id` int(11) DEFAULT '0',
  12. `subgroep_id` int(11) DEFAULT '0',
  13. `minigroep_id` varchar(99) NOT NULL DEFAULT '0',
  14. PRIMARY KEY (`id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=255 ;


vinTage schreef:
code tags aub! 

19 antwoorden

Gesponsorde links
Offline Tuinstoel - 10/02/2010 22:44
Avatar van Tuinstoel PHP expert Dude. Vereenvoudig je script eens. Je gebruikt 4 query's om hetzelfde in principe op te vragen. Check google eens, en zoek bijvoorbeeld eens naar JOINS.
Offline stedem - 11/02/2010 08:57
Avatar van stedem Nieuw lid Tuinstoel, alvast bedankt voor je suggestie maar zou je eventueel even kunnen meedenken aan m'n script en wat aanpassingen voorstellen?
Thx
Offline Tuinstoel - 11/02/2010 18:56
Avatar van Tuinstoel PHP expert Zoals ik je vraag interpreteer vermoed ik dat je een hide/show gebeuren bedoelt met html/css/js? Welke rol je PHP en MySQL in deze heeft is me nog onduidelijk.
Offline TotempaaltJ - 11/02/2010 20:05 (laatste wijziging 11/02/2010 20:24)
Avatar van TotempaaltJ PHP interesse Sorry - vinTage -, dat ik probeer te helpen. Ik dacht nou eenmaal dat dit ook met jQuery kon, maar helaas, blijkbaar toch niet. Shame on me, en als goedmakertje een nieuwe poging tot oplossing:

Je moet een variabele meekrijgen waarin het id van de geselecteerde hoofdgroep staat en dan met een ifje checken of die hoofdgroep is geselecteerd, zo niet, dan het goede eruit halen en de rest erin laten 
Offline stedem - 12/02/2010 08:41
Avatar van stedem Nieuw lid In m'n url zit volgende code:
page.php?hg=0&gr=0&sb=0&slct=hg&pid=0&cnt=n&nav=prod
Offline TotempaaltJ - 13/02/2010 15:09
Avatar van TotempaaltJ PHP interesse Weet je hoe het script werkt? Ik (en niemand hier) ga het niet voor je voorkauwen!
Offline stedem - 14/02/2010 15:08
Avatar van stedem Nieuw lid
TotempaaltJ schreef:
Weet je hoe het script werkt? Ik (en niemand hier) ga het niet voor je voorkauwen!


Ik weet zeer zeker hoe het script werkt, op een andere pagina heb ik het werkend gekregen met 1 level diepte, nu ik meerdere levels diep moet gaan lukt het me echter niet.

Ik roep telkens de specifieke groep aan, dit aan de hand van de subgroep en hoofdgroep. M'n boom word effectief getoond maar ik wil dat hij "openklapt" waneer er op het specifieke onderwerp geklikt word.

Het script is naar m'n gevoel vrij volledig maar zie de missing link niet.
Offline TotempaaltJ - 14/02/2010 22:43
Avatar van TotempaaltJ PHP interesse Hmm k, wil je dat dit 'real-time' gebeurt of vind je het niet erg om er een linkje van te maken?
Offline stedem - 15/02/2010 09:15
Avatar van stedem Nieuw lid Moet zeker niet realtime zijn, gewoon op klik is meer dan voldoende.
Alvast bedankt voor je input!
Offline TotempaaltJ - 16/02/2010 19:45
Avatar van TotempaaltJ PHP interesse Maak gebruik van de volgende code, dit zou genoeg moeten zijn:
  1. while($row = mysql_fetch_assoc()) {
  2. if($row['id'] != $subgroep) continue;
  3. }

Continue slaat één keer loopen over.

Opdracht voor school ga ik je niet te ver mee helpen 
Offline Martijn - 16/02/2010 19:47
Avatar van Martijn Crew PHP Je kunt m prima helpen hoor. Je hoeft niet steeds te zeggen dat je niets gaat zeggen, dat zou jij ook niet willen. Je kunt ook meer dan genoeg info geven zonder het antwoord te geven, focus je dan daar op
Offline stedem - 16/02/2010 20:38 (laatste wijziging 16/02/2010 20:51)
Avatar van stedem Nieuw lid Hi Totem, wat bedoel je met "continue slaat een keer loopen over" ?

Is inderdaad voor school en begrijp dat je niet alles wil voortonen maar is wel feit dat het volledige script zelf geschreven is. Dat merk je waarschijnlijk wel aan de opbouw 

Een helpende hand is welkom
Offline TotempaaltJ - 16/02/2010 22:40 (laatste wijziging 16/02/2010 22:41)
Avatar van TotempaaltJ PHP interesse Uhm, eens zien hoe ik dat uitleg...
Ja:
  1. $i = 0;
  2. while($i < 10) {
  3. if($i = 5) continue;
  4. echo $i;
  5. $i++;
  6. }
Dit zou moeten geven: 012346789 Zoals je kan zien is de vijf overgeslagen.
Offline stedem - 16/02/2010 22:43
Avatar van stedem Nieuw lid En waarom zou een item moeten overgeslagen worden? Is toch omgekeerd. In principe moet toch alles gesloten blijven behalve de juiste link
Offline TotempaaltJ - 17/02/2010 07:34
Avatar van TotempaaltJ PHP interesse Ja, je slaat dus elke over die niet de juiste link is (of daaronder zit)
Offline stedem - 17/02/2010 07:47
Avatar van stedem Nieuw lid Het is nu toch te laat voor m'n schoolwerk, maar wil toch weten hoe het op te lossen. Waar integreer ik die while functie? Kun je misschien even toepassen in eerste deel code?
Offline jaronneke - 17/02/2010 12:43
Avatar van jaronneke MySQL interesse
TotempaaltJ schreef:
Uhm, eens zien hoe ik dat uitleg...
Ja:
[..code..]Dit zou moeten geven: 012346789 Zoals je kan zien is de vijf overgeslagen.


moet : if ($i == 5) zijn ipv $i = 5
Offline stedem - 17/02/2010 13:12
Avatar van stedem Nieuw lid
jaronneke schreef:
[..quote..]

moet : if ($i == 5) zijn ipv $i = 5



Hi Jaronneke,
Thanks voor de correctie maar waar ben nog altijd niet mee waar je dit stukje script voor gebruikt?

Kan je dit misschien ergens toepassen in het script zodat ik dit zie?
Offline TotempaaltJ - 17/02/2010 20:21
Avatar van TotempaaltJ PHP interesse Kijk, je slaat elk item over dat dus niet in de geselecteerde catagorie valt (die je in $_GET meekrijgt);

Hoofdcategorie-id: 2
Sub: 4
1. Categorie één (overslaan, id is niet 2)
2. Categorie twee (laten zien, id is 2)
. . 1. Subcategorie één (overslaan, id is niet 4)
. . 2. Subcategorie twee (overslaan, id is niet 4)
. . 3. Subcategorie drie (overslaan, id is niet 4)
. . 4. Subcategorie vier (laten zien, id is 4)
3. Categorie drie (overslaan, id is niet 2)
dus:
  1. $hoofdcat = $_GET['hfdcat'];
  2. $subcat = $_GET['subcat'];
  3.  
  4. while($hfdrow = mysql_blah()) {
  5. if($hfdrow['id'] != $hoofdcat) { continue;
  6. } else {
  7. echo $hfdrow['naam'];
  8. while($subrow = mysql_blah()) {
  9. if($subrow['id'] != $subcat) { continue;
  10. } else {
  11. echo $subrow['naam']
  12. while($links = mysql_blah()) {
  13. echo $links['link'];
  14. }
  15. }
  16. }
  17. }
Let op! Dit is geen werkende code, maar dit zou je echt genoeg informatie moeten geven 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.23s