PHP PDO Цикл результатов SQL показывает только последний - PullRequest
0 голосов
/ 05 октября 2018

Уважаемые,

Я пытаюсь извлечь все результаты SQL в массив массива, а затем в json, но я не знаю, почему я получаю только последнюю строку SQL.

<?php
require_once "Xsecure/access.php";

        $Arry = array(); 
        $json = array();

        $access = new DatabaseAccess();
        $sql = $access->Connect();
        $stmt = $sql->prepare("select mid from players");
        $stmt->execute();
        $rowCount = $stmt->rowCount();  

        $Arry = $result;


    while ($result = $stmt->fetchAll(PDO::FETCH_ASSOC) ){
        $Arry = $result;
    }
        // for array data access
        foreach($Arry as $row){
          $json["mid"] = $row["mid"];
        };

        // 3. Disconnect db connection
        $sql = $access->Disconnect();

        // 4. Return json output
        echo json_encode($json, JSON_UNESCAPED_SLASHES);

?>

Вывод результата:

{
"mid": "10"
}

Должен быть от 1 до 10 не только в последней строке.Как я могу этого достичь?Что мне не хватает?

Примечание: Позже я хочу добавить дополнительные пары значений ключей в массив, которые не являются производными от базы данных mySql, поэтому я должен использовать массив ассоциаций.

Заранее спасибо,

1 Ответ

0 голосов
/ 05 октября 2018
...
$stmt->execute();
$rowCount = $stmt->rowCount();
$Arry = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($Arry as $row){
   $json[]["mid"] = $row["mid"];
};
...

или даже просто

...
$stmt->execute();
$rowCount = $stmt->rowCount();
$json = $stmt->fetchAll(PDO::FETCH_ASSOC);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...