2014-03-28 2 views
0

다른 변수에서 where 절을 무시해야하는 sql을 설정하여 where 절을 무시하고 싶습니다.다른 SQL 쿼리에서 where 절을 무시할 수 있습니까?

하지만 실행하려고하면 아무 것도 표시되지 않습니다.

"$test" SQL 변수를 제거하고 $requete 내에 조인을 설정할 때. 그 다음은 작동하지만 where 절 무시 나던 :

<?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)); 

?> 
+0

() 논쟁? –

+0

당신은 쿼리 ($ requete, $ test)를 의미합니다. 이걸로 성취 될 것이라고 생각했는데, 그럴 권리가 있는지는 모르겠다. – Rene

+0

query() 매뉴얼 페이지를 읽는 동안이 아이디어에 대한 증거를 얻었습니까? –

답변

2
<?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); 
1
$test = "LEFT JOIN Werknemer W ON W.idWerknemer = et.idWerknemer"; 
$sql = "SELECT ... LEFT JOIN ... FROM ON idEvent = e.id $test WHERE ..."; 

지금 추가하거나 그 부분을 제거 할 수 있습니다를 동적으로 쿼리와 쿼리 부분을 추가하는 아이디어를 얻을 않았다

+0

$ test join에서 where 절을 무시할 필요가 있습니다. "LEFT JOIN Werknemer .."부분에 대해 where 절이 무시 된 답을 할 때 – Rene

+0

항상 $ test를 비워 둘 수 있습니다. –

+0

예하지만 i 쿼리에서 $ 테스트도 실행해야합니다. – Rene

관련 문제