login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoek functie

Offline maphis - 17/09/2006 12:00
Avatar van maphisHTML interesse Ik ben hier bezig met een zoekmachine voor mijn db, nu kom ik een probleem tegen en ik hoop dat jullie mij kunnen helpen .

ter info:
het gaat om een db met enkele varchar zoals merk en type, als ik vervolgens zoek op merk en type doe ik dit zo:

  1. mysql_query("SELECT * FROM db WHERE merk LIKE '%$_POST[DropDownLijstMerken]%' AND type LIKE '%$_POST[Type]%'");


Dit werkt allemaal goed, alleen nu heb ik ook een aantal opties waar je op kunt zoeken bv. geluid dit is een checkbox die ofwel 1 of 0 is en ook zo in de db staat. alleen als ik nu zoek met de volgende functie:

  1. mysql_query("SELECT * FROM db WHERE merk LIKE '%$_POST[DropDownLijstMerken]%' AND type LIKE '%$_POST[Type]%'AND geluid = '%$iCheckBoxListOptions_0%' ");


Nu zoekt hij niks meer als ik bijvoorbeeld alleen het merk opgeef (als ik alle waarden opgeef vind hij natuurlijk wel, maar ik wil bv kunnen zoeken op alleen de optie geluid en dan alle rijen waar geluid 1 is eruit halen), ik begrijp dat de AND betekend dat het en en is, alleen ikzelf weet geen goede oplossing...

Alvast bedankt

3 antwoorden

Gesponsorde links
Offline Crazed - 17/09/2006 12:26
Avatar van Crazed PHP interesse AND vervangen door OR
Offline maphis - 17/09/2006 12:32 (laatste wijziging 19/09/2006 21:39)
Avatar van maphis HTML interesse niemand een idee?  
Offline Koen1 - 19/09/2006 23:13
Avatar van Koen1 Nieuw lid Doe gewoon eerst een query 'genereren' en dan pas naar MySQL sturen. Bijvoorbeeld zo:
  1. <?php
  2. $query1 = "SELECT * FROM tabel WHERE ";
  3.  
  4. if($_POST['DropBoxMerk'] != "") {
  5. $query1.= "merk like '%".$_POST['DropBoxMerk']."%' ";
  6. }
  7. if($_POST['ZoekOptie2'] != "") {
  8. $query1.= "AND optie2 like '%".$_POST['ZoekOptie2']."%'";
  9. }
  10. //etc.
  11.  
  12. $result = mysql_query($query1);
  13. ?>


Opmerking bij dit voorbeeld: mocht je hierbij geen merk in hebben gevuld dan krijg je dus ...WHERE AND optie2..., wat dus niet goed is. Maar als bijv. het merk altijd gekozen moet worden kun je die vooraan bij WHERE zetten zodat de toevoeging kan beginnen met AND.
Of je gebruikt een extra variabele bijv:

  1. <?php
  2. $query1 = "Idem aan vorige voorbeeld";
  3. $and = 0;
  4.  
  5. if($_POST['merk'] != "") {
  6. if($and != 1) {
  7. $query1.= "AND ";
  8. $and = 1;
  9. }
  10. $query1.= "zoekoptie2 like '%blaat%'";
  11. }
  12. //etc.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s