Javascript 创建一个JSON字符串,将MySQL数据库中的每一行作为新数组元素

Javascript 创建一个JSON字符串,将MySQL数据库中的每一行作为新数组元素,javascript,php,json,database,mysqli,Javascript,Php,Json,Database,Mysqli,我设置了一个MySQL数据库($database),其中包含一个表(“gigdata”)和列名称,如下所示: 身份证 客户名称 一天 月 年 邮政编码 地位 进入 每个列名下都有几行测试数据。我已经使用PHP的mysqli类成功地连接到数据库,如下所示 到目前为止,我已经编写了以下PHP: //Connect to database $conn = new mysqli(localhost, $username, $password, $database); //Check connect

我设置了一个MySQL数据库($database),其中包含一个表(“gigdata”)和列名称,如下所示:

  • 身份证
  • 客户名称
  • 一天
  • 邮政编码
  • 地位
  • 进入
每个列名下都有几行测试数据。我已经使用PHP的mysqli类成功地连接到数据库,如下所示

到目前为止,我已经编写了以下PHP:

//Connect to database
$conn = new mysqli(localhost, $username, $password, $database);

//Check connection
if ($conn->connect_error) {
    die("Failed to connect to MySQL: " . $conn->connect_error);
} 
echo "<p>Connected to database</p>";

//Select data from database
$sql = "SELECT id, clientname, day, month, year, postcode, status, entered FROM gigdata";
$result = mysqli_query($conn, $sql);

//Create an empty array
$gigarray = array();

//Check data exists, if YES store in array
if (mysqli_num_rows($result) > 0) {

    while($row = mysqli_fetch_assoc($result)) {
        foreach ($row as $r) {
            array_push($gigarray, $r);
        }
    }
} else {
    echo "0 results";
}
//连接到数据库
$conn=newmysqli(localhost、$username、$password、$database);
//检查连接
如果($conn->connect\u错误){
die(“未能连接到MySQL:”.$conn->connect\u错误);
} 
echo“连接到数据库”

”; //从数据库中选择数据 $sql=“选择id、客户名称、日期、月份、年份、邮政编码、状态,从gigdata输入”; $result=mysqli\u查询($conn,$sql); //创建一个空数组 $gigarray=array(); //检查数据是否存在,如果是,则存储在数组中 如果(mysqli_num_行($result)>0){ while($row=mysqli\u fetch\u assoc($result)){ foreach($r行){ 阵列推送($gigarray,$r); } } }否则{ 回显“0结果”; }
然后,我将JSON字符串回显到Javascript中,效果很好:

var gigdata = <?php echo json_encode($gigarray) ?>;
var gigdata=;
问题:

我的目标是调整原始PHP,使JSON最终格式化为:

  • 每个数据库行都是一个新的数组元素
  • 每个数据库列名都是每个JSON名称/值对中的名称
  • 每个数据库字段都是每个JSON名称/值对中的值

希望这是有意义的,并提前表示感谢。

实际上有一个非常有用的mysqli函数,用于从结果中获取所有数据,这正是您想要的-

尝试:


你的意思是每一行都是一个新数组还是一个新数组元素?谢谢Simon,我的意思是“数组元素”。更正,完美!非常感谢!
json_encode(mysqli_fetch_all($result, MYSQLI_ASSOC));