【问题标题】:UNION 2 sql queries - wp_posts vs wp_terms - PHP, WORDPRESSUNION 2 sql 查询 - wp_posts vs wp_terms - PHP, WORDPRESS
【发布时间】:2017-12-07 02:15:37
【问题描述】:

我有一个页面,其中显示了所有分类类别和所有帖子/页面。在那里,我需要进行 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

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

【问题讨论】:

  • 这里的标签太多,mysql sql server。要使联合成功,列列表必须匹配(在这种情况下很可能不会匹配)。
  • 嗯...是的,我同意你的看法。但不确定如何解决这个@JacobH

标签: php mysql wordpress pagination


【解决方案1】:

这个错误可能是因为你的查询中有一些错误以避免这种情况发生

您应该选择相同数量的列和相应的数据类型,因此请尽量避免全选 (*) 并使用显式选择列,您应该使用类似如下的 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);

【讨论】:

  • 我只是尝试为每个列选择 4 列,但仍然出现相同的错误。重新数据类型 - 它们不能与 wp 结构相似,我无法在那里做任何事情。还有其他想法吗? @scaisEdge
  • 数据类型必须匹配...试试IDE中的查询,这样你就可以看到真正的sql错误
猜你喜欢
  • 2019-07-17
  • 1970-01-01
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
相关资源
最近更新 更多