【发布时间】:2020-03-01 09:25:53
【问题描述】:
如何使用 PHP 和 MYSQL 获取的两侧标题填充 html 表中的数据。我没有得到输出显示,正如我想要的那样,就像在所需的输出图像中一样。
$query = $db->prepare("SELECT player, score FROM cricket_table WHERE dateby BETWEEN '2020-01-01' AND '2020-03-01'
UNION ALL
SELECT player, score FROM football_table WHERE dateby BETWEEN '2020-01-01' AND '2020-03-01'");
$query->execute;
echo '<table><tr><th>Player Name</th><th>Cricket</th><th>Football</th></tr>';
while($row = $query->fetch(PDO:: FETCH_ASSOC) ) {
echo '<tr>
<td>'.$row['player'].'</td>
<td>'.$row['score'].'</td>
</tr>';
}
echo '</table>';
这是所需的output
这是当前的输出
【问题讨论】:
-
除了您提供的代码无效之外,您还有什么问题?
-
我没有得到输出显示,正如我想要得到的那样,就像上面所需的输出图像一样。
-
如果不同表中有相同的列,为什么不只使用一个表和标志呢?例如,在 WordPress 中,它们有 wp_posts 表和 post_type,其中存储了帖子的类型(例如:产品、附件、帖子等)您可以在您的标志中执行相同的操作(例如:sport_type)您可以存储类似的值板球、足球等,然后您可以使用 LEFT JOIN
-
UNION ALL 不是您要查找的内容,因为返回结果就像您只查询一张表一样。您必须使用带有外键的 JOIN,它可以是 player_id: SELECT a.*, c.*, f.* FROM player AS a LEFT JOIN cricket_table AS c ON a.player_id = c.player_id LEFT JOIN football_table AS f ON a .player_id = f.player_id
-
请提供真实样本数据,或制作sqlfiddle.com