php - 使用 PHP 将 MySQL 和 Postgres 数据库中的数据放入单个 HTML 表中

标签 php html mysql postgresql

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

我有一个像这样的 MySQL 查询结果

$orderid = array(); 
while ($row = mysql_fetch_array($qry_result)) {
    $orderid[] = $row[order_id];
}

$orderlist =  implode(', ', $orderid );

PS:是的,我知道我应该使用 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 表中的一行中,要么一遍又一遍地重复。预期结果是电子邮件与 order_id 配对——每行一次。

我觉得我在这里做了一些愚蠢的事情,这是一个很容易解决的问题。非常感谢任何帮助。

最佳答案

在没有看到实际查询的情况下,这是一个不太可能的方案,但它应该可以帮助您入门。

首先,从 mysql 查询中获取 order_id 和 email,然后将结果存储为关联数组。

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 解释器做出假设。

关于php - 使用 PHP 将 MySQL 和 Postgres 数据库中的数据放入单个 HTML 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374152/

相关文章:

PHP MYSQL 插入不起作用并且没有收到错误

javascript - 使用隐藏形式将 JavaScript 分数从游戏发送到 PHP - 我没有得到任何值?

php - 2011 : DIVs OR TABLEs? Div/Input/Labels 是否仍然可行,还是 XHTML Tables (tables/tr/td) 重新流行?

javascript - 如何检查是否加载了某个 extjs 面板

javascript - 如何将链接列表显示为下拉选择?

c++ - 检查查询返回的任何行是否包含在字符串中的最有效方法?

php - 如何更改php中 'echo'的位置?

javascript - 如何在浏览器解析 HTML 之前对其进行预处理 - 阻止资源加载

MySql 在重复键上添加条件状态,如果不是重复键

php - 在 Woocommerce 中检索产品分类的 SQL 查询