2 回答
TA贡献1719条经验 获得超6个赞
aUNION中的列名是由第一次选择的列名设置的,因此您永远不会看到$column->tbnum值。要解决此问题,您可以将第二列添加到作为列名称的选择中。例如:
$columns = [];
$stmt = $conn->prepare("
SELECT tanum, 'tanum' AS cname FROM tableA
UNION ALL
SELECT tbnum, 'tbnum' FROM tableB;
");
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_object()) {
$columns[] = $row;
}
$stmt->close();
?>
<?php foreach($columns as $column): ?>
<div><?php echo $column->tanum . $column->cname; ?></div>
<?php endforeach; ?>
TA贡献1777条经验 获得超3个赞
你需要重构你的代码。
<?php
$columns = [];
$stmt = $conn->prepare("
SELECT tanum, 'a' as ident FROM tableA
UNION ALL
SELECT tbnum, 'b' as ident FROM tableB;
");
$stmt->execute();
$result = $stmt->get_result();
$i = 0;
while($row = $result->fetch_object()) {
$columns[$i]['tanum'] = $row['tanum'];
$columns[$i]['ident'] = $row['ident'];
$i++;
}
$stmt->close();
?>
<?php foreach($columns as $column): ?>
<?php if ($column['ident']=='a') ?>
<div><?php echo $column['tanum']; ?>tanum</div>
<?php elseif ($column['ident']=='b') ?>
<div><?php echo $column['tanum']; ?>tbnum</div>
<?php endif; ?>
<?php endforeach; ?>
- 2 回答
- 0 关注
- 169 浏览
添加回答
举报