У меня есть код, который должен прочитать все строки из таблицы базы данных 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, и он отлично работает там.