【问题标题】:I want to make a statement for select data from MySQL database. But output just show the last row data from table我想为 MySQL 数据库中的选择数据做一个声明。但输出只显示表中的最后一行数据
【发布时间】:2022-01-27 07:10:17
【问题描述】:

这是我的 PHP 代码:

<?php

include 'connection.php';

    $result = $connection->prepare ("SELECT * FROM daftar_mobil");
    $result->execute();

    while($row = $result->fetch(PDO::FETCH_ASSOC)){

        $response['status']= true;
        $response['message']='Data Tersedia';
        $response['data'] = [
            
        'no_plat' => $row['no_plat'],
        'tipe_kendaraan' => $row['tipe_kendaraan'],
        'id_alat'=> $row['id_alat']
        ];
       
    }
    $json = json_encode($response, JSON_PRETTY_PRINT);
    echo $json;
    ?>

这是输出:(输出不显示所有数据。只显示表中的最后一行数据)

{ "status": true, "message": "Data Tersedia", "data": { "no_plat": “AB7786DE”、“tipe_kendaraan”:“XENIA”、“id_alat”:“12”}}

【问题讨论】:

  • 将每行结果推入一个数组。
  • $response 每次运行都会覆盖。可以在关闭while 之前执行$responses[] = $response;。然后json_encode$responses
  • @Barmar 可以帮助我。不显示不同的输出
  • @user3783243 输出还是一样

标签: php mysql database pdo conditional-statements


【解决方案1】:

将每一行结果推送到一个数组中,并对其进行编码。

<?php

include 'connection.php';

$result = $connection->prepare ("SELECT * FROM daftar_mobil");
$result->execute();
$responses = [];
while($row = $result->fetch(PDO::FETCH_ASSOC)){
    $response = [
        'status' => true,
        'message' => 'Data Tersedia',
        'data' => [
            'no_plat' => $row['no_plat'],
            'tipe_kendaraan' => $row['tipe_kendaraan'],
            'id_alat'=> $row['id_alat']
        ]
    ];
    $responses[] = $response;
}
$json = json_encode($responses, JSON_PRETTY_PRINT);
echo $json;
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    相关资源
    最近更新 更多