duanhu7390 2014-03-28 08:24
浏览 47
已采纳

我可以忽略另一个SQL查询中的where子句吗?

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

?>
  • 写回答

2条回答 默认 最新

  • dsjxgu4759 2014-03-28 08:30
    关注
    <?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条)

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示