login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoek opdracht afhandelen

Offline GroundZero - 15/09/2011 18:30
Avatar van GroundZeroLid Beste,

ben nu een aantal dagen bezig maar krijg het niet (goed) werkend. Ik heb een aantal opties welke gebruikt kunnen worden namelijk:

Plaatsnaam, Categorie en Doelgroep.

Aan de hand van de gekozen dingen, moet een query gemaakt worden. Dus kiezen ze alleen een plaatsnaam, dan moet de query alleen kijken naar

  1. WHERE plaatsnaam = "code_hier"


Maar wanneer er twee dingen gekozen word dan moet hij doen van:

  1. WHERE plaatsnaam = "code_hier"
  2. AND
  3. categorie = "code_hier"


en idem voor drie dingen natuurlijk.

Kan iemand mij a.u.b. uitleggen hoe ik dit op een simpele manier kan realiseren zonder al te ingewikkelde codes?...

Mijn HTML code:

  1. <div id="winkel-zoeken">
  2. <div id="winkel-zoeken-wrap">
  3. <form name="zoekenformulier" id="zoekenformulier" method="post" action="">
  4.  
  5. <div class="een">
  6. <input type="text" name="zoeken_stad" id="stad_tags" class="input" placeholder="plaatsnaam..." />
  7. </div>
  8.  
  9. <div class="twee">
  10. <select name="zoeken_categorie" class="select">
  11. <option value="-">maak uw keuze...</option>
  12. <option value="1">1</option>
  13. </select>
  14. </div>
  15.  
  16. <div class="twee">
  17. <select name="zoeken_doelgroep" class="select">
  18. <option value="-">maak uw keuze...</option>
  19. <option value="1">1</option>
  20. </select>
  21. </div>
  22.  
  23. <div class="twee-s">
  24. <input type="submit" name="submit" id="submit" value="Zoeken" />
  25. </div>
  26.  
  27. <div class="drie">
  28. </div>
  29.  
  30. </form>
  31. </div>
  32. </div>

3 antwoorden

Gesponsorde links
Offline vinTage - 15/09/2011 19:33
Avatar van vinTage Nieuw lid Als plaats een verplicht veld is kan je gewoon de query uitbreiden:

  1. $qry = "select * from table where plaats = '".mysql_real_escape_string($_POST['plaats'])."'";
  2.  
  3. if(isset($_POST['category']))
  4. {
  5. $qry .= " and category = '".mysql_real_escape_string($_POST['category'])."'";
  6. }
  7. if(isset($_POST['doelgroep']))
  8. {
  9. $qry .= " and doelgroep = '".mysql_real_escape_string($_POST['doelgroep'])."'";
  10. }


Als alle velden optioneel zijn, dan moet je er een extra controle inzetten met een zooitje if/elsjes om je eerste "where" te bepalen.
Offline GroundZero - 15/09/2011 22:15
Avatar van GroundZero Lid Ja alles is optioneel haha 
En ik had daar al aan gedacht inderdaad een zooitje if/else maar kreeg het niet voor elkaar gek genoeg 
Offline vinTage - 16/09/2011 09:41
Avatar van vinTage Nieuw lid nuja, onderstaande voorbeeldje werkt.
In het array plaats je bij de key de naam van de kolom waaruit geselecteerd moet worden en bij de value zet je de naam van het 'bijhorende' inputveld.

  1. <?
  2. if(isset($_POST['verstuur']))
  3. {
  4. $optioneel = array('plaatsKOLOM' =>'plaatsINPUTVELD', 'categoryKOLOM' => 'categoryINPUTVELD', 'doelgroepKOLOM' => 'doelgroepINPUTVELD');
  5. $qry = "select * from tabel";
  6. $where = '';
  7. foreach($optioneel as $kolomnaam => $inputvalue)
  8. {
  9. if(!empty($_POST[$inputvalue]) && $where == '')
  10. {
  11. $where = " where ".$kolomnaam." = '".$_POST[$inputvalue]."'";
  12. $qry .= $where;
  13. }
  14. else
  15. {
  16. $qry .= !empty($_POST[$inputvalue]) ? " and ".$kolomnaam." = '". $_POST[$inputvalue]."'" : '';
  17. }
  18.  
  19. }
  20. echo $qry;
  21. }
  22. ?>
  23.  
  24. <form action="" method="post">
  25. <input name="plaatsINPUTVELD" type="text" value="dorpstraat" /><br />
  26. <input name="categoryINPUTVELD" type="text" value="timmerman" /><br />
  27. <input name="doelgroepINPUTVELD" type="text" value="bejaarden" /><br />
  28. <input name="verstuur" type="submit" value="verstuur" />
  29. </form>
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s