Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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-从db到JSON获取数据_Php_Mysql_Json - Fatal编程技术网

PHP-从db到JSON获取数据

PHP-从db到JSON获取数据,php,mysql,json,Php,Mysql,Json,我有两个表,一个由ID和FNAME(ex,01 Google)组成,另一个由ID、名字、姓氏(ex 01 JOHN DOE)组成 最后一个数据库中的ID将用户与一个组织(这里是ID为01的f.ex Google)连接起来 我正试图通过JSON_encode将它们转换成JSON,但出于对我的热爱,我无法找出如何将我得到的两个结果连接起来 用户应该按组织进行排序 例: 我真的没有任何代码示例,因为我无法获得任何远程工作。我试图将其放入while循环中的数组中,但格式完全错误-排序也是如此。只是为了让

我有两个表,一个由ID和FNAME(ex,01 Google)组成,另一个由ID、名字、姓氏(ex 01 JOHN DOE)组成

最后一个数据库中的ID将用户与一个组织(这里是ID为01的f.ex Google)连接起来

我正试图通过JSON_encode将它们转换成JSON,但出于对我的热爱,我无法找出如何将我得到的两个结果连接起来

用户应该按组织进行排序

例:


我真的没有任何代码示例,因为我无法获得任何远程工作。我试图将其放入while循环中的数组中,但格式完全错误-排序也是如此。

只是为了让您可以开始

<?php
    $outArr = array();
    $arr1 = array(0 => array('ID' => '01', 'FIRSTNAME' => 'Google'));
    $arr2 = array(0 => array('ID' => '01', 'FIRSTNAME' => 'JOHN', 'SURNAME' => 'DOE'),
        1 => array('ID' => '01', 'FIRSTNAME' => 'NewJOHN', 'SURNAME' => 'NewDOE'));

    foreach ($arr1 as $key => $compArr) {
        $companyId = $compArr['ID'];
        $outArr[$compArr['FIRSTNAME']] = '';
        foreach ($arr2 as $arr2key => $employeeArr) {
            if ($employeeArr['ID'] == $companyId) {
                $outArr[$compArr['FIRSTNAME']][] .= $employeeArr['FIRSTNAME'];
            }
        }
    }
    echo json_encode($outArr);
    exit;
?>

这可能会帮助您

$res = mysql_query('SELECT * FROM employee em LEFT JOIN organization org ON em.id = org.empid');
$op = array();
while($row = mysql_fetch_assoc($res))
{
  print_r($row);
  if(!isset($op[$row[org]])){
    $op[$row[org]]  = array();
  }
  array_push( $op[$row[org]], $row['fname']." ".$row['lname']);
}

echo json_encode($op);
以及基于本地数据库中的条目的相应结果

Array
(
    [id] => 1
    [fname] => john
    [lname] => doe
    [sno] => 1
    [empid] => 1
    [org] => Google
)
Array
(
    [id] => 2
    [fname] => will
    [lname] => smith
    [sno] => 2
    [empid] => 2
    [org] => Microsoft
)
Array
(
    [id] => 3
    [fname] => abdul
    [lname] => raseed
    [sno] => 3
    [empid] => 3
    [org] => Google
)
{"Google":["john doe","abdul raseed"],"Microsoft":["will smith"]}
注:DDL如下:

/*DDL Information*/
-------------------

CREATE TABLE `employee` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `fname` VARCHAR(256) DEFAULT NULL,
  `lname` VARCHAR(256) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1


CREATE TABLE `organization` (
  `sno` INT(11) NOT NULL AUTO_INCREMENT,
  `empid` VARCHAR(10) NOT NULL,
  `org` VARCHAR(256) DEFAULT NULL,
  PRIMARY KEY (`sno`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

节点:尝试使用最新的mysql函数,而不是弃用的函数。

1。编写选择查询。2.运行查询。3.使用数据库库中与
->fetch()
等价的内容检索结果。4.使用结果构建数组。5.通过json_encode()运行数组。请不要建议使用旧的
mysql_xxx()
函数;它们已被弃用和过时。改用
mysqli_xxX()
或PDO。
/*DDL Information*/
-------------------

CREATE TABLE `employee` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `fname` VARCHAR(256) DEFAULT NULL,
  `lname` VARCHAR(256) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1


CREATE TABLE `organization` (
  `sno` INT(11) NOT NULL AUTO_INCREMENT,
  `empid` VARCHAR(10) NOT NULL,
  `org` VARCHAR(256) DEFAULT NULL,
  PRIMARY KEY (`sno`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1