Reputation: 13567
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
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
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