Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
UNION 2 sql查询-wp_posts vs wp_terms-PHP,WORDPRESS_Php_Mysql_Wordpress_Pagination - Fatal编程技术网

UNION 2 sql查询-wp_posts vs wp_terms-PHP,WORDPRESS

UNION 2 sql查询-wp_posts vs wp_terms-PHP,WORDPRESS,php,mysql,wordpress,pagination,Php,Mysql,Wordpress,Pagination,我有一个显示所有分类类别和所有文章/页面的页面。在那里,我需要有ajax分页,这样我的页面就不会加载页面(甚至不会加载)。因此,我已经通过sql查询构建了分页,现在需要使用sql查询获取术语和帖子,然后将它们合并,这样我的分页将正常工作,并且包括它们 这是我的密码: $sql1 = "SELECT * FROM wp_term_taxonomy LEFT JOIN wp_terms ON (wp_term_taxonomy.term_id = wp_terms.term_id) WHERE w

我有一个显示所有分类类别和所有文章/页面的页面。在那里,我需要有ajax分页,这样我的页面就不会加载页面(甚至不会加载)。因此,我已经通过sql查询构建了分页,现在需要使用sql查询获取术语和帖子,然后将它们合并,这样我的分页将正常工作,并且包括它们

这是我的密码:

$sql1 = "SELECT * FROM wp_term_taxonomy LEFT JOIN wp_terms ON (wp_term_taxonomy.term_id = 
wp_terms.term_id) WHERE wp_term_taxonomy.taxonomy = 'product-category'";

$sql2 = "SELECT * FROM wp_posts WHERE (post_type = 'products' OR post_type = 'page') 
AND (post_status = 'publish' OR post_status = 'suspended') AND ID NOT IN 
(231, 236, 1070, 1245) order by post_title ASC";

$sql = $sql1." UNION ".$sql2;

$query =  $sql . " limit " . $start . "," . $resultPerPage->perpage;
$list = $db_handle->runBackendQuery($query);
上面返回了以下错误:

Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, boolean given in .../dbcontroller.php on line 29

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in 
.../dbcontroller.php on line 38

我想我可以加入这两种不同的东西。有什么我遗漏的吗?

可能会发生错误,因为您的查询中有一些错误,请避免此错误

您应该选择相同数量的列和相应的数据类型,因此尝试避免选择所有(*),并使用显式选择列。您应该使用sintax,例如:

$sql1 = "SELECT col_a1, col_a2, col_a3 FROM wp_term_taxonomy LEFT JOIN wp_terms ON (wp_term_taxonomy.term_id = 
wp_terms.term_id) WHERE wp_term_taxonomy.taxonomy = 'product-category'";

$sql2 = "SELECT col_b1, col_b2, col_b3 FROM wp_posts WHERE (post_type = 'products' OR post_type = 'page') 
AND (post_status = 'publish' OR post_status = 'suspended') AND ID NOT IN 
(231, 236, 1070, 1245) order by post_title ASC";

$sql = $sql1." UNION ".$sql2;

$query =  $sql . " limit " . $start . "," . $resultPerPage->perpage;
$list = $db_handle->runBackendQuery($query);

这里的标签太多,mysql sql server。为了使联盟成功,列列表必须匹配(在这种情况下很可能不会匹配)。嗯……是的,我同意你的看法。但不确定该怎么解决这个问题@jacobi只是尝试为每个列选择4列,但仍然存在相同的错误。关于数据类型-它们不能相似,因为它是wp结构,我在那里什么都做不了。还有其他想法吗@SCAISedge数据类型必须匹配。。。还可以在IDE中尝试查询,以便查看真正的sql错误