Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP将MySQL和Postgres数据库中的数据存储到单个HTML表中_Php_Html_Mysql_Postgresql - Fatal编程技术网

使用PHP将MySQL和Postgres数据库中的数据存储到单个HTML表中

使用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。旧

我需要查询MySQL数据库,使用部分结果编写Postgres数据库的查询,然后在HTML表中显示来自这两个数据集的结果

我对MySQL查询的结果有一个类似的解释

$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解释器承担这些事情。

谢谢!在提交这篇文章之后,我有了一个清晰的瞬间,并以一种不同的方式让事情运转起来。至于重复的事情。。。这些查询实际上并没有做到这一点,我只是快速清理了半敏感数据,但没有做好。再次感谢您的指导!