gpt4 book ai didi

php - 无法获取 JOIN 语句返回结果

转载 作者:行者123 更新时间:2023-11-30 00:01:48 25 4
gpt4 key购买 nike

我实际上是第一次尝试使用 JOINS,但我很难使用它。我有两个表...故事和 wp_users,我正在尝试返回所有故事,并在每个故事中包含用户的显示名称。

此代码可以很好地获取故事的所有结果并显示故事名称和类型:

$results = $wpdb->get_results("SELECT * FROM stories where stories.active = 1");
foreach ($results as $row) {
echo '<tr>';
echo '<td>' . $row->story_name; '</td>';
echo '<td>' . $row->genre; '</td>';

现在我还想包含撰写故事的用户的姓名(wp_users 表中的“display_name”)

在阅读了许多有关连接的网站后,以下方法似乎是最好的,但遗憾的是它没有返回结果:

<?php 
global $wpdb;

$sql = "SELECT stories.story_name, stories.genre, wp_users.display_name as display FROM
stories LEFT JOIN wp_users ON stories.ID=wp_users.ID where stories.active = 1";

$results = $wpdb->query($sql);

if($results->num_rows) {
while($row = $results->fetch_object()) {
echo "{$row->story_name} {$row->genre} {$row->display}<br>";
}
}
else {
echo 'No results';
}

最佳答案

以下是一些可能有帮助的建议:

  1. 在第一个代码片段中,您使用 $wpdb->get_results(),而在第二个代码片段中使用 $wpdb->query()。返回值和参数含义可能会有所不同。
  2. 找出查询后询问错误消息的方法,并使用它来转储消息。通常,如果没有返回任何行,那是因为出现了错误。
  3. 确保 num_rows 确实是从 $results 获取的。这里( http://codex.wordpress.org/Function_Reference/wpdb_Class )表示表达式为 $wpdb->num_rows。 (您可以通过在网站上搜索“num_rows”找到它,它会向下滚动。)
  4. 尝试使用 MySQL Command Shell 或某些 PhpMyAdmin 沙箱来检查查询。直接输入SQL会显示SQL代码中的拼写错误和其他问题,例如“未知列”,并且允许快速编辑。连接语法因数据库而异,但您的 LEFT JOIN 对于 MySQL 来说是可以的。语法层面上似乎没有问题。

本文档 http://codex.wordpress.org/Function_Reference/wpdb_Class可能有助于弄清楚代码。

关于php - 无法获取 JOIN 语句返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24968183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com