PHP存在于哪里Array没有做它应该做的事情

时间:2016-12-23 04:09:51

标签: php select where

下面的代码应该只返回带有status=0的表行,但是它会加载所有这些行:

$where_clouse='';

    get_header();

    $sql="SELECT P.`id`, P.`project_title`, P.`project_length`, P.`quality_level`, P.`writing_style`, 
            P.`article_purpose`,P.`author_voice`,P.`special_instruct`,P.`approve`,P.`status`,P.`date`,P.`budget`,P.client_id
            FROM `wp_project` AS P
            WHERE EXISTS (SELECT * FROM `wp_project` as A WHERE `status` = '0') ".$where_clouse."  ORDER BY P.`id`  ASC LIMIT $offset, $limit";

    $projects = $wpdb->get_results($sql, ARRAY_A)

以下代码将$projects向下拉,并将其正确放入数组中,但不仅仅是status=0项目,还有其他所有项目。

我在这里做错了什么?

<?php if(count($projects) > 0) { 
    foreach($projects as $project) {
        $title=$project['project_title'];
?>

我想补充一点,这个$sql查询有一些额外的行,所以我把它剥离了,我不完全是这个代码应该做的,例如我不明白这个在哪里存在

我在这里把所有东西拉了两次,因此它抓住了所有的行吗?

1 个答案:

答案 0 :(得分:0)

尝试这种方式:

 $sql="SELECT P.`id`, P.`project_title`, P.`project_length`, P.`quality_level`, P.`writing_style`, 
            P.`article_purpose`,P.`author_voice`,P.`special_instruct`,P.`approve`,P.`status`,P.`date`,P.`budget`,P.client_id
            FROM `wp_project` AS P
            WHERE P.status = 0 ". $where_clouse ."  ORDER BY P.`id`  ASC LIMIT $offset, $limit";

btw我认为没有必要反击。