UNION ALL 不回显附加文本[重复]

Posted

技术标签:

【中文标题】UNION ALL 不回显附加文本[重复]【英文标题】:UNION ALL does not echo out additional text [duplicate] 【发布时间】: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

所以基本上,我的代码不会在valueAvalueB 之前回显单词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 来解决问题。谢谢你的好建议 你能得到的最好的建议是退出这个联合的东西,只剩下一张桌子 【参考方案1】:

如果您希望 SELECT UNION 起作用,那么您需要确保两行的列名(别名)相同。

所以而不是:

SELECT valueA, 'TEXT' AS valueAA FROM tableA
UNION ALL
SELECT valueB, 'TEXT' FROM tableB;

这会让你更接近你想要的吗?

SELECT valueA AS valFirst, 'TEXT' AS valSecond FROM tableA
UNION ALL
SELECT valueB AS valFirst, 'TEXT' AS valSecond FROM tableB;

【讨论】:

是的!你为我节省了很多时间!你的是我一直在寻找的解决方案 - 完全修复了我的代码。说真的,非常感谢! 不客气!我很高兴我的建议很有用。 哪怕是一点点帮助也能挽救一个人的生命!我永远感激这个社区的人们。即使在现实生活中,也没有人这么好来提供建议!【参考方案2】:

我在写这篇文章的过程中看到了蒂姆的评论,这正是我要说的。在 PHP 而不是 SQL 中将字符串“TEXT”添加到您想要的信息中似乎要容易得多。这是一个例子:

echo "TEXT" . $valueAA . $valueAVAR;

【讨论】:

是的,但我重新编辑了我的问题,因为我错过了一些东西。 “TEXT”一词始终是不同的值,具体取决于它在数据库中的内容。但是 ChrisFNZ 解决了这个问题,也谢谢!【参考方案3】:

您从未从查询中读取您的字段valueAA

<?php
...
foreach($rows as $row):
$valueA = htmlentities($row['valueA']);
$valueAVAR = number_format($valueA);
# read valueAA
$valueAA = htmlentities($row['valueAA']);
...
?>
<div><?php echo $valueAA . $valueAVAR; ?></div>

【讨论】:

@OliverDepriester 哦,哇,这也是解决方案。我不敢相信我完全错过了 valueAA 甚至没有作为一行回显。假设既然是编造出来的,就不需要呼应了。但是您在解释部分澄清了问题 - 谢谢! 太好了,因为我很惊讶@ChrisFNZ 的回答是解决方案,据我所知,UNION ALL 并不关心别名。所以我认为您的查询可能保持不变。

以上是关于UNION ALL 不回显附加文本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥不回显 $rslt 变量

SpringMVC JSON数据交互 数据不回显问题

SpringMVC JSON数据交互 数据不回显问题

php 脚本不回显 textarea 输入(html 表单)。为啥?

在 WordPress 中加载模板而不回显它

SpringMVC JSP不回显问题