Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在查询中输入my WHERE将中断查询_Php_Mysql_Wordpress_Where - Fatal编程技术网

Php 在查询中输入my WHERE将中断查询

Php 在查询中输入my WHERE将中断查询,php,mysql,wordpress,where,Php,Mysql,Wordpress,Where,所以我必须在这个插件中添加一个WHERE查询,我正在WordPress网站上使用这个插件作为报告功能。我没有时间做任何事情,只能添加另一列并按该列中的值进行筛选,因为没有那么多数据来管理每个更新。我添加的列的默认值为零,但我将添加新条目以表示添加新人员的年份。但是,当我根据列值进行筛选时,整个查询将中断,并且不会显示。我不知道为什么。下面是一节,它涉及到显示结果的设置查询 <?php $sql = "SELECT COUNT(*) FROM " . $wpdb->prefix .

所以我必须在这个插件中添加一个WHERE查询,我正在WordPress网站上使用这个插件作为报告功能。我没有时间做任何事情,只能添加另一列并按该列中的值进行筛选,因为没有那么多数据来管理每个更新。我添加的列的默认值为零,但我将添加新条目以表示添加新人员的年份。但是,当我根据列值进行筛选时,整个查询将中断,并且不会显示。我不知道为什么。下面是一节,它涉及到显示结果的设置查询

<?php

$sql = "SELECT COUNT(*) FROM " . $wpdb->prefix . "presidentsreport_breakdown WHERE list_id = " . $atts['list_id'];
    $total_breakdowns = $wpdb->get_var($sql);

    $sql = "SELECT p.person_id, p.name, p.notes, p.school_year, b.breakdown_id, b.name as breakdown, b.description as breakdown_description FROM " . $wpdb->prefix . "presidentsreport_person p INNER JOIN " . $wpdb->prefix . "presidentsreport_breakdown b ON b.breakdown_id = p.breakdown_id INNER JOIN " . $wpdb->prefix . "presidentsreport_list l ON l.list_id = b.list_id";
    $clean_where = " WHERE l.list_id = " . $atts['list_id'];
    $where = "";
    if($search != ''){
        $where = " AND (p.name LIKE %s)";
        $arg = '%' . $search . '%';
        $args = array($arg);
    }

    $where = $wpdb->prepare($where, $args);

    $order = " ORDER BY b.sort_order, b.breakdown_id, p.sort_name, p.name, p.person_id";
    $results = $wpdb->get_results($sql . $clean_where . $where . $order);

?>

如果我在变量$中添加任何内容,它会破坏整个查询。如果我加上

<?php

$where = " WHERE p.school_year <= 2011";

?>



不会显示任何内容,对于最后一个示例,如果默认值为0,则无论如何都应显示所有内容。提前感谢您通读

不要在变量中添加
WHERE
。它已在
$clean\u中分配,其中

$clean_where = " WHERE l.list_id = " . $atts['list_id'];
Here ------------^
您需要将添加参数连接到
$where
变量:

$where .= " AND p.school_year <= 2011";

$where.=”和p.school\u yearwhere中不需要where!

echo$sql.$clean\u where.$where.$order;另外,2011年没有行。
。仅仅因为
0
是默认值,并不意味着其中不能有任何其他值。我在workbench中,它们都有0,我在workbench中设置它
$where .= " AND p.school_year <= 2011";