Hallo iedereen!

Ik loop tegen een klein dingetje aan. Ik gebruik een aantal SESSION's in mijn Query. Maar het kan zijn dat er één of meerder session's niet in gebruik is. Het gaat namelijk om een filter functie. Wanneer het veld niet ingevuld is zal er dus ook GEEN session aan worden gemaakt.

Maar nu zit ik met het probleem dat de Query dan natuurlijk niet werkt zonder die session. MOET ik persé steeds een if/else maken voor als een session wel of niet is ingevuld? Want dan krijg ik namelijk heel veel queries en dit wil ik het liefst voorkomen.

Query die ik gebruik:
"SELECT * FROM user JOIN klant ON klant.klant_id = user.klant_klant_id 
                                        JOIN email ON email.user_user_id = user.user_id
                                        WHERE klant_klant_id = '".$_SESSION['klantid']."' 
                                        ORDER BY '".$_SESSION['sorted']."'"


Het kan dus voorkomen dat $_SESSION['klantid'] wel is ingevuld maar $_SESSION['sorted'] niet. Of andersom, of beide niet of beide wel.


Hopelijk snappen jullie waar ik mee vast loop.


Corné
Bouw je query ((in) één keer) dynamisch op via een string.

Dus niet:
<?php
if (<iets in je sessie>) {
    $res = $db->query(<query met sessie>);
} else {
    $res = $db->query(<query zonder sessie>);
}
?>

Maar:
<?php
$query = '...'; // standaard deel van je query
if (<iets in je sessie>) {
    $query .= '...'; // extra argumenten uit/via sessie
} else {
    // of laat zelfs else geheel achterwege indien mogelijk
    $query .= '...'; // een of andere default?
}
// zo ook voor de andere onderdelen die mogelijk uit je sessie komen
// ...
// voer uiteindelijk $query uit
$res = $db->query($query);
?>

Je moet wel al het werk doen, maar je doet op deze manier niets dubbel.
Dankje Thomas!

Sorry voor de late reactie, maar ik ga er mee aan de slag, wist niet dat dat op deze manier kan.


Corné

Reageren