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

时间:2017-01-25 00:22:17

标签: javascript php json database mysqli

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

  • id
  • 客户端名
  • 邮政编码
  • 状态
  • 输入

每个列名称下面都有几行测试数据。我已经使用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";
}

然后我将JSON字符串回显到Javascript中,这很好用:

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

问题

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

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

希望这是有道理的,并且事先感谢。

1 个答案:

答案 0 :(得分:0)

实际上有一个非常有用的mysqli函数可以从结果中获取所有数据,具体取决于您的需求 - mysqli_fetch_all

尝试:

{{1}}