Вы правы, так как изначально чистый план, потому что он не работал, я сделал слишком много модификаций, которые, наконец, добавили сложности, когда в этом нет необходимости ...
Я нашел в php doc возможность узнать больше об ошибке, сгенерированной при добавлении других полей в преобразовании json. json_last_error () был ключом к пониманию проблемы.
И я добавил:
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - Aucune erreur';
break;
case JSON_ERROR_DEPTH:
echo ' - Profondeur maximale atteinte';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Inadéquation des modes ou underflow';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Erreur lors du contrôle des caractères';
break;
case JSON_ERROR_SYNTAX:
echo ' - Erreur de syntaxe ; JSON malformé';
break;
case JSON_ERROR_UTF8:
echo ' - Caractères UTF-8 malformés, probablement une erreur d\'encodage';
break;
default:
echo ' - Erreur inconnue';
break;
}
Это возвращает мне проблему с кодировкой UTF-8. Поэтому я изменил свой код, добавив немного
utf8_encode($rowr['Fieldname'])
Первое рабочее решение очень близко от @PaulH, просто, в моем конкретном случае, я определенно должен добавить (utf8_encode ()) выражение:
$Sql_Query = "SELECT * FROM Users";
$result = mysqli_query($dbc,$Sql_Query);
$ligne =array();
$bilan = array();
while ($rowr = mysqli_fetch_assoc($result)) {
$ligne = array ("User_ID" => $rowr['User_ID'],
"User_Nom" => utf8_encode($rowr['User_Nom']),
"User_Prenom" =>utf8_encode($rowr['User_Prenom']));
array_push ($bilan, $ligne);
}
echo json_encode($bilan, JSON_FORCE_OBJECT);
и теперь отображаются все поля, все строки. Но были все еще некоторые "é", преобразованные в "\ u00e9". Так что этот пост поместите окончательный кирпич в решение.
Я изменил:
JSON_FORCED_OBJECT
до
JSON_UNESCAPED_UNICODE
как параметр json_encode ().
Наконец, код, доставляющий именно то, что мне нужно, следующий:
$Sql_Query = "SELECT * FROM Users";
$result = mysqli_query($dbc,$Sql_Query);
$bilan = array();
while ($rowr = mysqli_fetch_assoc($result)) {
$ligne = array ("User_ID" => $rowr['User_ID'],
"User_Nom" => utf8_encode($rowr['User_Nom']),
"User_Prenom" =>utf8_encode($rowr['User_Prenom']));
array_push ($bilan, $ligne);
}
echo json_encode($bilan, JSON_UNESCAPED_UNICODE);