Vraag & Antwoord

Webprogrammeren & scripting

[MySQL] Wildcard bij '='?

3 antwoorden
  • Ik ben nog niet zo heel lang met PHP / MySQL bezig, maar het begint aardig te lukken. Nu zit ik met het volgende probleem: Hoe gebruik ik een wildcard achter het 'WHERE' statement? Ik zal eerst uitleggen waarom, want als je toch alles wilt zien kun je normaal gesproken ook het hele WHERE ding weglaten natuurlijk. Ik ben bezig een foto gallery in PHP te maken met daarin categorieen en een dropdown menuutje waarin men een categorie kan kiezen, of gewoon voor 'alles' kan kiezen. De query die ik daar bji heb is: [code:1:8a98c223a4]SELECT * FROM afbeeldingen WHERE categorie = '$pagecat'[/code:1:8a98c223a4] Waarbij $pagecat dan staat voor de actuele categorie die de bezoeker heeft gekozen. Kiest de bezoeker echter voor de optie om 'Alles' te zien, dan moet er dus een wildcard in $pagecat worden gezet. Indien het gewoon niet mogelijk is om een wildcard te gebruiken achter '=' zou ik danwel voor "LIKE" kunnen kiezen, maar dat lijkt me weer erg belastend voor de server (of valt dat mee?) Een andere optie is om [code:1:8a98c223a4]SELECT * FROM afbeeldingen[/code:1:8a98c223a4] te gebruiken en indien de bezoeker niet voor 'Alles' kiest m.b.v. een IF() er nog [code:1:8a98c223a4]WHERE categorie = '$pagecat'[/code:1:8a98c223a4] achter te bouwen. maar dat lijkt me weer erg omslachtig. Als ik een wildcard achter de '=' kon gebruiken is het sowieso allemaal niet nodig. iemand een idee?
  • wat ik zelf altijd doe in zo'n geval is je laatste idee - jij vindt t omslachtig: $sql = "SELECT * FROM afbeeldingen" . ($pagecat == 'alles') ? "" . "WHERE categorie = '$pagecat'";
  • Ik drukte me niet helemaal goed uit. Op zich vind ik het niet te omslachtig voor mezelf, maar wat ik bedoel is dat er "recourse matig" wellicht een elegantere manier bestaat. Het zijn maar een paar regeltjes extra code en van de beide alternatieven vind ik dit idd wel de beste. Ik vraag me alleen af of ik dit niet gewoon helemaal in SQL kan oplossen, en dan zonder 'LIKE' te gebruiken.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.