【发布时间】:2017-10-10 13:34:18
【问题描述】:
我是php编程新手,请帮助我。
我必须从两个独立的数据库进行两个 postgres 查询,但第一个查询条件是基于另一个查询结果:
第一个查询:
<?php
$result = "SELECT ...
WHERE ... ";
$query = $pgszlaConn->prepare($result);
$query->execute();
while($row = $query->fetch(PDO::FETCH_BOTH)) {
$contractid=$row[0];
echo "<tr><td>$contractid</td></tr>";
?>
/在这个查询中我有多个结果。/
第二次查询:
<?php
$result = "SELECT ...
WHERE contract.contract_id= :contract";
$query = $pgConn->prepare($result);
$query->bindparam(':contract', $contractid);
$query->execute();
while($row = $query->fetch(PDO::FETCH_BOTH)) {
echo "<tr><td>$row[0]</td></tr>";
?>
我的问题是第二个查询只有一个结果基于第一个查询多个结果。
我不确定这是否是一个好的解决方案,但我的编程技能不是那么先进 ;-)
如果可以的话,请帮助我!
非常感谢!
D.阿提拉
【问题讨论】:
-
你能帮助我们理解这个问题吗?您的第二个数据库有多行 WHERE contract_id 与该值匹配,对吗?或者您是否想要第二个数据库中第一个数据库中每个值的结果?
-
"contractid" 是两个数据库之间的唯一键。我有来自第一个数据库的多个contract_id,我正在寻找第二个数据库中的每个匹配行。但是对于我的解决方案,第二个查询中的 $contractid 变量仅包含第一个查询中的最后一个“contractid”,因此它只导致一个结果:-(
-
当代码部分 1 结束时,
$contractId有一个值:循环中的最后一个值。该值用于第二个查询。您需要在第二个代码中使用第一个循环的每个$contractId。 -
感谢您的建议。我该怎么做?
-
初学者没什么错。但是,如果您的目标是学习,也许可以先尝试一些更简单的事情。就像把一个循环放在一个循环中,如果你不能让它工作,展示你尝试了什么以及你有什么问题。如果您只是在寻找解决方案,请让程序员为您编写代码。 stackoverflow.com/help/on-topic
标签: php postgresql pdo