下面的代码应该只返回带有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
查询有一些额外的行,所以我把它剥离了,我不完全是这个代码应该做的,例如我不明白这个在哪里存在
我在这里把所有东西拉了两次,因此它抓住了所有的行吗?
答案 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我认为没有必要反击。