PHP MYSQL 多维数组

2023-12-11

我在尝试从两个单独的 MySQL 选择创建多维数组时遇到了很大的麻烦......我一直在这里和谷歌搜索一整天,最后不得不承认失败并寻求一些帮助(我也是新手)这没有帮助!!!)。

我有两个表,一个表包含每个 id 的单行结果,另一个表可以包含一个 id 的多行结果。我想做的是将两者组合成一个多维数组。

我的代码(尽管可能很糟糕)如下所示:

require 'php/phpConnection.php';

$sqlString1 = mysql_query("SELECT id FROM supportstaff_section1_a");

$firstArray = array();
$secondArray = array();

while ($r = mysql_fetch_assoc($sqlString1)) {
    $applicantID = $r['id'];
    $sqlString2 = mysql_query("SELECT educationalname FROM supportstaff_section5 WHERE id = '$applicantID'");

    while ($x = mysql_fetch_assoc($sqlString2)) {
        $secondArray[] = $x;
    }
    $firstArray[] = $r + $secondArray;
    $secondArray  = array();
}
print json_encode($firstArray);
mysql_close($con);

结果是这样的:

[{"id":"8m8wwy","0":{"educationalname":"GCSE - English"},"1":{"educationalname":"GCSE - Maths"}},{"id":"wiL7Bn"},{"id":"zAw6M1"}]

But I think它需要看起来像这样:

[{"id":"8m8wwy","Array2":"[{"educationalname":"GCSE - English"},{"educationalname":"GCSE - Maths"}]"},{"id":"wiL7Bn"},{"id":"zAw6M1"}]

无论如何,如何将每个 ID 的第二个 SQL Select 插入到第一个 SQL Select 中。

感谢您的任何建议/帮助。

EDIT

摘自 W3Schools.com:

Array
(
    [Griffin] => Array
    (
    [0] => Peter
    [1] => Lois
    [2] => Megan
    )
[Quagmire] => Array
    (
    [0] => Glenn
    )
[Brown] => Array
    (
    [0] => Cleveland
    [1] => Loretta
    [2] => Junior
    )
)

我正在努力让它像上面那样工作。


你需要在这里发挥一点创意。像下面这样的东西可以作为多维数据的连接 AND :

<?php
  require 'php/phpConnection.php';

  // ======================================================================
  // Create a join query (way faster than several separate ones!)
  $sqlquery =
    "SELECT SSSA.id, SSS5.educationalname" .
    " FROM supportstaff_section1_a SSSA" .
      " LEFT OUTER JOIN supportstaff_section5 SSS5 ON SSS5.id = SSSA.ID";


  // ======================================================================
  // Run the query and get our results
  $resultarray = array();
  if ($resource = mysql_query($sqlquery)) {
    while ($curarray = mysql_fetch_assoc($resource)) {
      // Create an array, if it doesn't exist
      if (!isset($resultarray[$curarray["id"]]))
        $resultarray[$curarray["id"]] = array();

      // Add to the array, if not null
      $curstring = (string) $curarray["educationalname"];
      if ($curstring != "")
        $resultarray[$curarray["id"]][] = $curstring;
    }
    mysql_free_result($resource);
  }


  // ======================================================================
  // Convert from a keyed array to a standard indexed array (0, 1, 2, etc.)
  $finalarray = array();
  foreach ($resultarray as $id => & $data) {
    // Start with just ID
    $newarray = array(
      "id" => $id
    );

    // Get the data, if we have any
    if (count($data))
      $newarray["educationalnames"] = & $data;

    // Add to our final array and clear the newarray
    $finalarray[] = & $newarray;
    unset($newarray);
  }


  // ======================================================================
  // Get the JSON of our result
  $jsonresult = json_encode($finalarray);


  // ======================================================================
  // Echo it to test
  echo $jsonresult;


  // ======================================================================
  // Close the database
  mysql_close($con);
?>

生成的 $jsondata 看起来像这样(但当然不是那么清晰):

[
  {
    "id": "8m8wwy",
    "educationalnames": ["GCSE - English", "GCSE - Maths"]
  },
  {
    "id": "wiL7Bn"
  },
  {
    "id": "zAw6M1"
  }
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP MYSQL 多维数组 的相关文章

随机推荐

  • 使用 git (dokku) 部署时出错 - 超时/管道损坏

    我在 digital ocean 上使用 dokku 一段时间了 没有任何问题 我现在在利用以下命令部署到 dokku 时遇到问题 git remote add dokku dokku some ip myapp git push dokk
  • 迭代构造函数链

    假设我有这样的事情 function A function B B prototype Object create A prototype function C C prototype Object create B prototype v
  • 如何在移动浏览器上使用 PHP 强制下载文件?

    我想编写一个 php 脚本来在移动浏览器上下载一些文件 扩展名 apk dcm pdf zip 等 我已经编写了一个 php 代码来下载这些文件 它在所有浏览器 不是移动浏览器 上运行良好 但我使用 HTC 手机尝试过 它试图打开文件而不是
  • TextView 动态填充并截断最后一行文本

    我不确定它只是 最后一行 但我们有一个应用程序 它有一个带有 fill parent 宽度 wrap content 高度的 TextView 文本是从 Java 代码动态放入其中的 尽管布局中有足够的空间 文本的最后一行根本没有显示 它位
  • 您可以拥有与多个数据库关联的 DbContext 吗?

    我有一个用户数据库 其中包含所有用户信息以及应用程序权限等 如果我有一个如上所述的通用数据库 然后每个 Web 应用程序都有其他数据库 我可以链接数据库以使用 Fluent 建立两个数据库之间的关系API优先还是代码优先 没有那么优雅的方法
  • 是否可以仅通过客户端发送电子邮件? [复制]

    这个问题在这里已经有答案了 我需要在使用 Vue js 的前端应用程序中发送电子邮件 我想知道是否可以仅使用 Javascript 发送邮件 或者我是否需要服务器端语言 谢谢你 不 您不能直接使用 JavaScript 发送电子邮件 但是您
  • 检查 java.lang.Double 是否相等的高性能方法

    检查双精度值是否相等的最有效方法是什么 我明白那个 double a 0 00023d double b 0 00029d boolean eq a b is slow 所以我正在使用 double epsilon 0 00000001d
  • C++ 变体类成员通过引用存储

    我正在尝试使用 std variant 进行实验 我将 std variant 存储为类的成员 在下面的代码中 如果变体按值存储 则一切正常 但如果变体按引用存储 则不起作用 对于向量情况 以及自定义对象 这是为什么 include
  • PostgreSQL:如何返回与找到的行相关的行(相对结果)?

    如果我的例子没有意义 请原谅 我将尝试使用一种简化的方式来鼓励更多的参与 考虑如下表 dt mnth foo 2012 12 01 December 2012 08 01 August 2012 07 01 July 2012 06 01
  • python 太多静态嵌套块

    我正在尝试将包含相同数量项目的超过 21 个列表写入文本文件中的列 import random a b q for i in range 200 a append random gauss 10 0 1 b append random 20
  • Delphi CreateOleObject 事件

    有一段代码 var myobject OleVariant begin myobject CreateOleObject SomeNamespace SomeClass end 该 COM 对象具有事件 例如 OnClick 我应该如何在不
  • Solr Facet 具有逗号分隔值的多个单词

    我正在将数据从 mysql 提取到 solr 中 其中一个字段是使用 group concat 函数生成的 该函数会生成一个以逗号分隔的字段 其中列出了事件的所有频段 当时我相信这是为一项活动存储多个乐队的最佳方式 但是 我发现我无法针对所
  • 如何在同一浏览器上重新运行 Selenium 2.0 (webdriver) 测试?

    我正在尝试使用Selenium 2 0 Webdriver 来实现一系列测试 在运行这些测试之前 我必须登录应用程序 由于该应用程序不是我 自己的 测试 api 构建的功能 因此每个测试不应登录到我的应用程序来运行 我更愿意执行以下操作 将
  • Maven:打包时执行antrun任务

    我需要使用 Maven antrun 插件将 Hibernate 字节码检测添加到我的 Java 类之一 以便启用各个字段的延迟加载 但是 我无法让插件在构建周期中执行 如何指示 Maven 在编译之后 打包之前执行 antrun 插件mv
  • Mysql JOIN(多个)表

    我有3张桌子 其中 2 个是相同的 相同的列 不同的数据 第三个有一些关于其他 2 个的信息数据 数据库如下所示 Table 1 ID Name 1 Table 2 2 Table 3 Table 2 Name Temperature Pr
  • WCF 与实体框架错误

    错误 ObjectContext 实例已被释放 不能再用于需要连接的操作 我正在尝试使用实体框架 VS 2010 NET 4 创建 WCF 服务 当我运行它时 我收到上述错误 我读过一些有关编辑 T4 模板的内容 但似乎它已经有了 Data
  • PHP 正则表达式删除多个 ? 标记

    我无法找到正确的正则表达式字符串来删除多个 的序列 人物 我想替换多个连续的 用一个 但是要转义哪些字符 正在逃避我 输入示例 这东西还开着 或者是什么 期望的输出 这个东西开了吗 或者是什么 我在用着预替换 in PHP preg rep
  • 一些基本操作的 CPU 成本数量级

    回答后那么问题被否决了 我想和你核实一下 为了对我编写的代码的成本有一个初步的了解 我倾向于以这种方式扩展操作 堆分配比堆栈分配慢大约 1000 倍 与屏幕 输出的IO约为1000次 比堆分配慢 硬盘上的 IO 大约慢 1000 倍 与屏幕
  • 如何使用 Passport-google-oauth 成功身份验证后重定向到原始页面

    我正在使用节点 Passport google oauth 模块 并尝试使用基于会话的方法成功进行身份验证后将页面重定向回原始路径Node js Passport 的 Google 策略上的自定义 returnUrl 但是 我发现在回调中
  • PHP MYSQL 多维数组

    我在尝试从两个单独的 MySQL 选择创建多维数组时遇到了很大的麻烦 我一直在这里和谷歌搜索一整天 最后不得不承认失败并寻求一些帮助 我也是新手 这没有帮助 我有两个表 一个表包含每个 id 的单行结果 另一个表可以包含一个 id 的多行结