【问题标题】:MySQLi Multiple Queries, accessing second arrayMySQLi 多查询,访问第二个数组
【发布时间】:2014-07-01 15:51:44
【问题描述】:

我有一个使用多个查询的多查询 MySQLi 语句,并且在使用 var_dump 时会返回以下内容:

数组的var_dump

array(1) { ["company"]=> string(8) "ffr3e456" ["high_1"]=> string(8) "8.32465" }
array(2) { ["company"]=> string(8) "gg8751hw" ["high_2"]=> string(7) "7.66574" }

我用来在 PHP 文件中显示数组的代码选择了第一个数组(即 high_1 信息的内容,但不是第二个。

代码

if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
            if ($result = $mysqli->store_result()) {
                while ($row = $result->fetch_assoc()) {
                    for ($p=1; $p<=2; $p++)
                         {
                         echo number_format($row["high_".$p],2);

HTML 输出显示第一个数组中的数据,但不显示第二个数组中的数据。我确信我忽略了一些东西,欢迎任何建议和反馈。

【问题讨论】:

  • 您能展示实际执行查询并获取结果的代码吗?
  • 您的密钥名称为high_1high_2,而不是novhigh_1novhigh_2。为什么不使用单个 UNION 语句来获取这些值?
  • 添加了前面的代码。调整后的代码使 high_1 和 high_2 匹配。在这种情况下不能使用UNION
  • 您在顶部提供的输出是什么?当然不是var_dump($row);
  • @PatrickQ - 它实际上是一个 var_dump - 为简单起见,我将数组中的数据量保留为两个简单的项目。

标签: php mysql arrays mysqli


【解决方案1】:
$C = array_merge($A, $B);

您可以在这里阅读更多内容:http://www.php.net/manual/de/function.array-merge.php

【讨论】:

  • 谢谢@ssergei - 但是,两个数组都在$row 变量中 - 不知道如何合并或组合它们。
  • $A = $row[0]; $B = $row[1];
  • 您能否提供$rowprint_r,以便我们查看数组是如何构造的?
【解决方案2】:

如果您显示返回结果的 SQL 语句会很有帮助。

返回的数组是否在单独的 $row 结果中?

在这种情况下,您需要遍历每个 $row 结果,例如:

foreach($query->result() as $row)
{
 for ($p=1; $p<=2; $p++)
 {
  echo number_format($row["novhigh_".$p],2);
 }
}

附带说明:看起来数组内的键定义不合逻辑,为什么“novhigh”元素没有相同的键值?

【讨论】:

    猜你喜欢
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    相关资源
    最近更新 更多