login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoekscript meerdere variable

Offline prienstra - 05/09/2009 10:07 (laatste wijziging 05/09/2009 10:36)
Avatar van prienstraMySQL interesse Goede morgen,

Ik heb een zoekscript. Met checkbox kunnen mensen wensen ingeven en worden zo meegegeven in de url (name=\"faciliteit_id[]\")

Nu heb ik een probleem als er meerdere items worden meegegeven. Uit de url wordt het zo gehaald (ik weet dat het niet goed is hoe het gemaakt is, maar weet niet hoe het wel moet):

  1. $ee = 0;
  2. if(isset($_GET['faciliteit_id']) && $_GET['faciliteit_id'] != "0")
  3.  
  4. {
  5. $ff = count($_GET['faciliteit_id']);
  6. }
  7. else
  8. {
  9. $ff = 0;
  10. }
  11. while ($ee < $ff)
  12. {
  13. if(isset($faciliteit_id[$ee]) AND $faciliteit_id[$ee] != "")
  14. {
  15. $query4 = mysql_query("SELECT * FROM hotel_faciliteiten WHERE fac_id = '$faciliteit_id[$ee]'",$link)
  16. or mooie_mysql_error($_SERVER['PHP_SELF']);
  17.  
  18. $catjoin = "AND fac.hotel_id = a.hotel_id";
  19.  
  20. $catget = ",hotel_faciliteiten AS fac";
  21.  
  22. $zoek .= " AND fac.fac_id = '$faciliteit_id[$ee]' ";
  23.  
  24. }
  25.  
  26. $ee++;
  27. }


Nu gaat het erom hoe ik regel 19 tot en met 22 moet maken dat als er meerdere variabele meegegeven het ook werkt.

3 antwoorden

Gesponsorde links
Offline Codestar - 05/09/2009 12:57 (laatste wijziging 05/09/2009 12:58)
Avatar van Codestar Nieuw lid Je bent veel moeilijk aan het doen dan hoeft. Je telt het aantal GET variabelen, vervolgens lus je daar doorheen en gooi je deze dynamische waarden in een query string. Stel nu dat je de url aanpast en de volgorde van je GET variabelen aanpast dan ligt heel je query op zijn gat.

Ik zou heel de lus weghalen en de GET vars aanspreken met hun sleutel (key) naam.

Je zoek gedeelte van de query word dan bijvoorbeeld: (Wanneer er iets van ?fac_id=365 in de url staat).

  1. $zoek .= " AND fac.fac_id = " . $_GET['fac_id'];


Easy, peasy, lemon squeezy.
Offline prienstra - 05/09/2009 16:07 (laatste wijziging 06/09/2009 20:45)
Avatar van prienstra MySQL interesse Ik heb no zoiets. Als ik het zo doe bij faciliteit_id 10 en 44:

  1. $zoek .= " AND fac.fac_id IN (" . implode (',', $_GET['faciliteit_id']) . ")";


Krijg ik als resultaat het id die 10 heeft en 44 heeft, maar niet het id die 10 & 44 heeft.

Wellicht moet ik ook vermelden, het staat als volgt in de database:
numfac_id - fac_id - id
6000 - 10 - 1
6001 - 44 - 1
6002 - 38 - 2
Offline Richard - 08/09/2009 20:22
Avatar van Richard Crew algemeen Misschien:
  1. $zoek .= " AND fac.fac_id = ANY(" . implode (',', $_GET['faciliteit_id']) . ")";


:]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s