Rene
Rene

Reputation: 13567

Can I ignore a where clause in another sql query

I would like to ignore the where clause by setting the sql which needs to ignore the where clause in another variable.

But when I try to run it nothing is shown.

When I remove the sql variable "$test" and set the join within the $requete. Then it will work but doesnt ignore the where clause:

<?php
// List of events
 $json = array();
 // Query that retrieves events

 $requete = "  SELECT distinct `evenementontvanger`.`idEvent`,`evenementontvanger`.`idProject`,`evenementontvanger`.`idKlant`,
`evenement`.`id`,`evenement`.`title`,`evenement`.`start`,`evenement`.`startdate`,`evenement`.`starttime`,
 `evenement`.`end`,`evenement`.`enddate`,`evenement`.`endtime`,`evenement`.`description`,`evenement`.`color` 
 FROM `evenement` LEFT JOIN `evenementontvanger` ON `evenementontvanger`.`idEvent` = `evenement`.`id` WHERE `idEvent`=`evenement`.`id`";

 $test ="LEFT JOIN `Werknemer` ON `Werknemer`.`idWerknemer`=`evenementontvanger`.`idWerknemer`";

 // connection to the database
 try {
 $bdd = new PDO('mysql:host=localhost;dbname=blackboks-calendar', 'calendar-boks', '19xantia');
 } catch(Exception $e) {
  exit('Unable to connect to database.');
 }
 // Execute the query
 $resultat = $bdd->query($requete,$test) or die(print_r($bdd->errorInfo()));

 // sending the encoded result to success page
 echo json_encode($resultat->fetchAll(PDO::FETCH_ASSOC));

?>

Upvotes: 0

Views: 118

Answers (2)

Your Common Sense
Your Common Sense

Reputation: 157917

$test = "LEFT JOIN Werknemer W ON W.idWerknemer = et.idWerknemer";
$sql = "SELECT ... LEFT JOIN ... FROM  ON idEvent = e.id $test WHERE ...";

now you can add or remove that part dynamically

Upvotes: 1

VolkerK
VolkerK

Reputation: 96159

<?php
$foo = true;

// Query that retrieves events
if ( $foo ) {
    $auxJoin ="
        LEFT JOIN
            `Werknemer`
        ON
            `Werknemer`.`idWerknemer`=`evenementontvanger`.`idWerknemer`
    ";
}
else {
    $auxJoin = '';
}

$requete = "
    SELECT
        distinct `evenementontvanger`.`idEvent`,`evenementontvanger`.`idProject`,`evenementontvanger`.`idKlant`,
        `evenement`.`id`,`evenement`.`title`,`evenement`.`start`,`evenement`.`startdate`,`evenement`.`starttime`,
        `evenement`.`end`,`evenement`.`enddate`,`evenement`.`endtime`,`evenement`.`description`,`evenement`.`color` 
    FROM
        `evenement`
    LEFT JOIN
        `evenementontvanger`
    ON
        `evenementontvanger`.`idEvent` = `evenement`.`id`
    $auxJoin
    WHERE
        `idEvent`=`evenement`.`id`
";



// connection to the database
try {
    $bdd = new PDO('mysql:host=localhost;dbname=blackboks-calendar', 'calendar-boks', '19xantia');
    $resultat = $bdd->query($requete,$test) or die(print_r($bdd->errorInfo()));
    $data = $resultat->fetchAll(PDO::FETCH_ASSOC)
}
catch(Exception $e) {
    $data = array('error'=>'Unable to connect to database.');
}

// sending the encoded result to success page
echo json_encode($data);

Upvotes: 2

Related Questions