Stel, ik wil alle rijen (ongeacht de inhoud) uit een mysql kolom genaamd Vacht selecteren mbv een formulier.
Wat is de juiste manier om dit te verwerken? Dit is wat ik geprobeerd heb en geen van deze werkt.

if(isset($_GET['Vacht']) and ($_GET['Vacht'] === "alles"))

{ $Vacht = '';}

of {$Vacht = "";}

of {$Vacht = "%";}


of iets anders?
Waar haal je de resultaten vandaan ?
Nu krijg ik het idee dat je een resultaat hebt van een gesubmitte pagina.

Laat je query eerst eens zien.
$sql = "SELECT Nummer FROM katten WHERE Code = '$Code' AND Datum >= '$Datum' AND Vacht LIKE '$Vacht'";
Met deze querie krijg je toch alleen de kolom nummer terug van alle rijen waarvan
EN inhoud kolom code gelijk is $code
EN inhoud van kolom Datum >= $datum
EN inhoud van kolom Vacht lijkt op $Vacht

Wanneer je de vacht ook in de resultaat rijen wilt hebben zal je deze ook in de select op moeten nemen.

SELECT Nummer, vacht FROM katten


Vervolgens kan je mbv een loop alle vachten tonen die in het query resultaat staan.



Wanneer ik de vraag in je openingstopic goed berijp zou de query als volgt moeten zijn:

SELECT vacht FROM katten

Hiermee krijg je van alle rijen de vacht als resultaat.

Indien vacht geen zoekcriterium is (alle vachten zijn toegestaan, en/of er is geen specifieke vacht-voorkeur opgegeven) hoef je dit niet als zoekcriterium op te nemen in je query :).

De truuk is denk ik om de zoekquery interactief op te bouwen en alleen die criteria in je query op te nemen waarvoor specifieke waarden zijn opgegeven. Wanneer er niet expliciet iets is opgegeven over vacht, neem je dit simpelweg niet op als argument in de (interactief te bouwen) query(string).
<?php
if(isset($_GET['Vacht']) and ($_GET['Vacht'] === "alles")) {
  $sTabel = 'mijntabel';
  $oResultaat = $oMySQLi->query('SELECT `Vacht` FROM `' . $sTabel . '`';
  while ($aRij = $oResultaat->fetch_assoc()) {
    print_r($aRij);
  }
  $oResultaat->close();
}
?>
Thomas van den Heuvel op 14/03/2016 13:25:22

Indien vacht .... hoef je dit niet als zoekcriterium op te nemen in je query :).


Jwel, want er zijn ook mogelijkheden die wel wel Vacht selecteren dus Vacht zit in de paginatie. Ik kan het niet zomaar weglaten. Ik heb het nu opgelost door de query te splitsen met if, de ene is dat <?php SELECT * where Vacht not like $Vacht?> en de andere <?php SELECT * where Vacht like $Vacht?> en dan werkt de paginatie gewoon.
Maar ik heb ook nog een radiobutton die ik toe wil voegen die ook al de query splitst en dan wordt het wel erg ingewikkeld. Is er niet een methode dat je alles kan selecteren ongeacht de inhoud zodat ik niet hoef te splitsen?
Bouw je query dynamisch op, zoals Thomas ook aangeeft.
eeh wat bedoel je daarmee? Hoe bouw je dynamisch?
Geen if gebruiken om één query te bepalen, en in je query (die hier op de WHERE voorwaarde iets verschilt) bepalen wat er getoond of gefilterd moet worden.
ehm juist ja, haha dit is een gevalletje kafka

is er niet een wildcard, zoals bv bij select, dat je met een * alle kolommen selecteert, maar dan voor de inhoud van alle rijen?

Reageren