我是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。阿提拉
答案 0 :(得分:-2)
如果我明白你的意思。 您需要在第一个查询的循环内进行第二个查询,以便对于第一个可用查询的每个id,将id传递给第二个查询以查询第二个表的数据库。
while($row = $query->fetch(PDO::FETCH_BOTH)) {
echo "<tr><td>$contractid</td></tr>";
## now you make the second query to the second table with the id of the first table
$result = "SELECT WHERE contract.contract_id= :contract";
while($row = $query->fetch(PDO::FETCH_BOTH)) {
echo "<tr><td>$row[0]</td></tr>";
} ## end of second query loop
} ## end of first query loop
这样的事情应该可以实现,并为自己实现