使用PHP将MySQL和Postgres数据库中的数据存储到单个HTML表中
我需要查询MySQL数据库,使用部分结果编写Postgres数据库的查询,然后在HTML表中显示来自这两个数据集的结果 我对MySQL查询的结果有一个类似的解释使用PHP将MySQL和Postgres数据库中的数据存储到单个HTML表中,php,html,mysql,postgresql,Php,Html,Mysql,Postgresql,我需要查询MySQL数据库,使用部分结果编写Postgres数据库的查询,然后在HTML表中显示来自这两个数据集的结果 我对MySQL查询的结果有一个类似的解释 $orderid = array(); while ($row = mysql_fetch_array($qry_result)) { $orderid[] = $row[order_id]; } $orderlist = implode(', ', $orderid ); 是的,我知道我应该使用mysqli/PDO。旧
$orderid = array();
while ($row = mysql_fetch_array($qry_result)) {
$orderid[] = $row[order_id];
}
$orderlist = implode(', ', $orderid );
是的,我知道我应该使用mysqli/PDO。旧习难改
$query2 = "SELECT
data1,
data2,
total
FROM order_summary os
WHERE os.order_id IN ($orderlist)
LIMIT 25";
这是可行的,虽然没有我想的那么快,但它确实有效。关于更好的处理方法的建议也非常感谢
现在,当我试图让它显示出来时,我正在做这样的事情:
$result2 = pg_query($query2) or die('Query failed: ' . pg_last_error());
while ($rowrs = pg_fetch_array($result2, null, PGSQL_ASSOC)) {
$display_string .= "<tr class='text-center'>";
$display_string .= "<td>$rowrs[data1]</td>";
$display_string .= "<td>$rowrs[data2]</td>";
$display_string .= "<td>\$$rowrs[total]</td>";
$qry_result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($qry_result)){
$display_string .= "<td>$row[email]</td>";}
}
//magical other things unrelated to the table
$display_string .= "</tr>";
$display_string .= "</table>";
echo $display_string
问题在于,MySQL的结果要么显示在HTML表中的一行中,要么一遍遍地重复。预期结果将是电子邮件与订单id配对-每行一次
我觉得我在做一些愚蠢的事情,这很容易解决。非常感谢您提供的任何帮助。在没有看到实际查询的情况下,这是一个很长的过程,但应该可以让您开始 首先,从mysql查询中获取order_id和电子邮件,然后将结果存储为关联数组
while($row=mysql_fetch_array($result)) {
$orderid[$row['order_id']] = $row['email'];
}
因为它是一个关联数组,所以应该使用
$orderlist = implode(', ', array_keys($orderid) );
如果您从postgres获取订单id,则无需再次查询mysql。相反,只需执行以下操作即可检索电子邮件
$email = $orderid[$rowsrs['order_id']];
$display_string .= "<td>$email</td>";
强制提醒,使用Pdo!!!特别是当你使用两台发动机时,你的工作效率会比现在低一半
此外,必须引用数组键。不要让你可怜的php解释器承担这些事情。谢谢!在提交这篇文章之后,我有了一个清晰的瞬间,并以一种不同的方式让事情运转起来。至于重复的事情。。。这些查询实际上并没有做到这一点,我只是快速清理了半敏感数据,但没有做好。再次感谢您的指导!