【发布时间】:2019-08-27 02:07:25
【问题描述】:
这是我的代码:
<?php
$stmt = $pdo->prepare("
SELECT valueA, 'TEXT' AS valueAA FROM tableA
UNION ALL
SELECT valueB, 'TEXT2' FROM tableB;
");
$stmt->execute();
$points = $stmt->fetchAll();
foreach($rows as $row):
$valueA = htmlentities($row['valueA']);
$valueAVAR = number_format($valueA);
?>
<div><?php echo $valueAA . $valueAVAR; ?></div>
<?php endforeach; ?>
这是我得到的不想要的结果:
valueA
valueB
这是我想要的结果:
TEXTvalueA
TEXT2valueB
所以基本上,我的代码不会在valueA 和valueB 之前回显单词TEXT,因为它应该基于我的SQL 语句。你能帮我重写我的代码,以便TEXT 可以得到回显吗?谢谢
编辑:tableA 的示例:
valAid (int11) | valueA (int11)
1 | 100
tableB:
valBid (int11) | valueB (int11)
2 | 200
【问题讨论】:
-
为什么不在 php 中添加“TEXT”而不是查询?这是更合乎逻辑的方法
-
@tim 好的,我想我在我的问题中遗漏了一些东西。我编辑了这个问题,但是根据数据库中的值,它们是不同的单词。幸运的是 ChrisFNZ 解决了这个问题。
-
我仍然会在 php 中这样做,为此使用 db 是不合逻辑的。
-
@tim Hm.. 我没想到。我一定会听取您的建议并考虑重写我的代码。这是因为我曾尝试单独使用 php 进行文本渲染部分,但由于我使用 LEFT/INNER JOINS 导致复制所有行(不需要的结果),因此代码无法运行。所以有人建议使用 UNION ALL,它解决了这个问题。但我正在重新考虑仅使用 php 来解决问题。谢谢你的好建议
-
你能得到的最好的建议是退出这个联合的东西,只剩下一张桌子