Почему мой код имеет ограничение 1 с написанием? - PullRequest
0 голосов
/ 08 июня 2019

У меня есть код, который должен прочитать все строки из таблицы базы данных mysql.Однако он не показывает все данные из таблицы.

Массив $ должен содержать все строки, но содержит только первую.

У меня есть три строки в моей базе данных module_cmds

+--------+------+----+--------------------+
| module | hash | id | serverId           |
+--------+------+----+--------------------+
| music  |    1 |  1 | 231870365863903232 |
| rule34 |    1 |  2 | 231870365863903232 |
| logs   |    1 |  3 | 231870365863903232 |
+--------+------+----+--------------------+

FYI, count ($ reponses) = 1

Попробуйте изменить ORDER BY

FYI, массив $, ранее использовался в коде, но яне думайте, что это что-то изменит

$array = array();
    $reponses = $bdd->query('SELECT * FROM module_cmds WHERE serverId=' . $donnees['server_id'] . ' ORDER BY module');
    while ($donnee = $reponses->fetch()){
                $array_param = array();
                $reponses = $bdd->query('SELECT * FROM module_params WHERE idModule=' . $donnee['id']);
                while ($donne = $reponses->fetch()){
                        $array_param_in = array( 'param' => $donne['paramName'],
                                                        'value' => $donne['value']);
                        array_push($array_param,$array_param_in);
                }
        $array_in = array( 'module' => $donnee['module'],
                        'hash' => $donnee['hash'],
                        'params' => $array_param);
        array_push($array,$array_in);
    }

Для модуля ORDER BY ответ

"modules":[{"module":"logs","hash":"1","params":[]}]

Для идентификатора ORDER BY ответ

"modules":[{"module":"music","hash":"1","params":[]}]

Ответ должен быть

"modules":[{"module":"logs","hash":"1","params":[]},
           {"module":"music","hash":"1","params":[]},
           {"module":"rule34","hash":"1","params":[]},]```

Я думаю, что ошибка исходит от SQL, но

'SELECT * FROM module_cmds WHERE serverId = 231870365863903232 ORDER BY module'

отлично работает.

Где моя ошибка?Это то, что я не знаю о массиве в Php?Какая-то опечатка?Какую строку я забыл?

К вашему сведению, у меня есть похожий код, в который я не вхожу в другую таблицу SQL, и он отлично работает там.

1 Ответ

0 голосов
/ 08 июня 2019

Попробуйте изменить $reponses во втором цикле while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...