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 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件