login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fout in code? (Opgelost)

Offline mbeek - 18/05/2009 10:27 (laatste wijziging 18/05/2009 10:27)
Avatar van mbeekNieuw lid Hallo,

Ik heb de volgende code:

  1. <?php
  2. ini_set('display_errors', 1); // 0 = uit, 1 = aan
  3.  
  4. $aCats = array('hcat', 'scat', 'mcat');
  5.  
  6. for($catteller=1; $catteller<=3; $catteller++)
  7. {
  8. $soort = $aCats[$catteller - 1];
  9. $querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'";
  10. $resulttest = mysql_query($querytest);
  11.  
  12. while($row = mysql_fetch_assoc($resulttest))
  13. {
  14. $link = 'categorie.php';
  15. $sign = '?soort=' . $soort . '&';
  16. foreach($aCats AS $id => $sCat)
  17. {
  18.  
  19. $aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
  20. $aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
  21. if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
  22. {
  23. if(in_array($row['id'], $aSelectedCats))
  24. {
  25. unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
  26. }
  27. elseif($_GET['soort'] === $sCat)
  28. {
  29. $aSelectedCats[] = $row['id'];
  30. }
  31. }
  32. if(count($aSelectedCats) > 0)
  33. {
  34. $link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
  35. $sign = '&';
  36. }
  37. }
  38.  
  39.  
  40. echo '<a href="' . $link . '">' . $row['naam'] . '</a><br />';
  41.  
  42. $params = array( 'hcat', 'scat', 'mcat');
  43. foreach( $params AS $param ) {
  44. if( isset( $_GET[$param] ) ) {
  45. $aExplodedConditions = explode(",", $_GET[$param]);
  46. $aParams = array();
  47. foreach($aExplodedConditions AS $sParam){
  48. $aParams[] = $sParam;
  49. }
  50.  
  51.  
  52. if(in_array($row['id'], $aParams)) {
  53. echo '<a href="' . $link . '"><b>' . $row['naam'] . '</b></a><br />';
  54.  
  55. } } }
  56. } }
  57. ?>


Het werkt opzich aardig. Het laat een aantal menu items (links) zien:

Bijvoorbeeld:

Audi
Bmw
Mercedes

Het doel is, dat als je een van die items aanklikt dat hij dan dikgedrukt wordt, dus stel je klikt op Audi, dan zou je moeten krijgen:

Audi
Bmw
Mercedes

Dat werkt gedeeltelijk, WANT, als ik nu op bijvoorbeeld AUDI klik krijg ik het volgende:

Audi
Audi
Bmw
Mercedes

Hij laat dan dus ook de niet-dikgedrukte Audi staan, dat moet dus niet. Ik snap dat ik iets fout doe in het onderste gedeelte van mijn code, maar weet niet wat.

Hopelijk kan iemand me helpen!

5 antwoorden

Gesponsorde links
Offline jaronneke - 18/05/2009 10:32 (laatste wijziging 18/05/2009 10:32)
Avatar van jaronneke MySQL interesse
  1. <?php
  2. ini_set('display_errors', 1); // 0 = uit, 1 = aan
  3.  
  4. $aCats = array('hcat', 'scat', 'mcat');
  5.  
  6. for($catteller=1; $catteller<=3; $catteller++)
  7. {
  8. $soort = $aCats[$catteller - 1];
  9. $querytest = "SELECT id, naam FROM categorie WHERE cat = '" . $catteller . "'";
  10. $resulttest = mysql_query($querytest);
  11.  
  12. while($row = mysql_fetch_assoc($resulttest))
  13. {
  14. $link = 'categorie.php';
  15. $sign = '?soort=' . $soort . '&';
  16. foreach($aCats AS $id => $sCat)
  17. {
  18.  
  19. $aSelectedCats = (isset($_GET[$sCat])) ? explode(",", $_GET[$sCat]) : array();
  20. $aSelectedCats = (($id === array_search($soort, $aCats)) and (count($aSelectedCats) === 0)) ? array($row['id']) : $aSelectedCats;
  21. if(isset($_GET['soort']) and ($_GET['soort'] === $soort))
  22. {
  23. if(in_array($row['id'], $aSelectedCats))
  24. {
  25. unset($aSelectedCats[array_search($row['id'], $aSelectedCats)]);
  26. }
  27. elseif($_GET['soort'] === $sCat)
  28. {
  29. $aSelectedCats[] = $row['id'];
  30. }
  31. }
  32. if(count($aSelectedCats) > 0)
  33. {
  34. $link .= $sign . $sCat . '=' . implode(",", $aSelectedCats);
  35. $sign = '&';
  36. }
  37. }
  38.  
  39.  
  40.  
  41. $params = array( 'hcat', 'scat', 'mcat');
  42. foreach( $params AS $param ) {
  43. if( isset( $_GET[$param] ) ) {
  44. $aExplodedConditions = explode(",", $_GET[$param]);
  45. $aParams = array();
  46. foreach($aExplodedConditions AS $sParam){
  47. $aParams[] = $sParam;
  48. }
  49.  
  50.  
  51. if(in_array($row['id'], $aParams)) {
  52. echo '<a href="' . $link . '"><strong>' . $row['naam'] . '</strong></a><br />';
  53.  
  54. }
  55. else
  56. {
  57. echo '<a href="' . $link . '">' . $row['naam'] . '</a><br />';
  58. }
  59.  
  60.  
  61. } }
  62. } }
  63. ?>


dit zal moeten werken? , niet getest
Offline Martijn - 18/05/2009 10:33
Avatar van Martijn Crew PHP Ik snap niet helemaal wat je aan het doen bent. Waarom de search en delete dingen? was dat een poging om je dubbele weg te halen?

Alles wat je hoeft te doen, is een while() te maken die alles echoëd, per waarde te kijken of het voorkomt in de link die je had explode, en zo ja maak m dik.
Offline jaronneke - 18/05/2009 10:34 (laatste wijziging 18/05/2009 10:34)
Avatar van jaronneke MySQL interesse om dubbele eruit te halen moet je mysql DISTINCT gebruiken
Offline mbeek - 18/05/2009 10:36
Avatar van mbeek Nieuw lid Dat van Jaronneke levert ook problemen op.

Kun je me helpen met een code DeviourSoul?
Offline jaronneke - 18/05/2009 10:39
Avatar van jaronneke MySQL interesse Kan je misschien je fouten wat beter omschrijven? je leest eigenlijk op een hele moeilijke manier iets uit wat vele male makkelijker kan.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.218s