Ich erhalte einige Daten aus einer Datenbank und binde sie nach json:
%Vor%, aber anstatt die JSON-Zeichenfolge im folgenden Format zu erhalten:
%Vor%Ich bekomme jeden Wert dupliziert, weil es mir den Elementnamen als den Index eines assoziativen und nicht-assoziativen Arrays gibt. Also ich bekomme:
%Vor%Während ich noch den json benutzen kann. Es ist immer noch doppelt so groß wie ich es möchte und daher nicht effizient. Gibt es überhaupt ich kann die json_encode-Methode, um mir nur die assoziativen Array-Inices als JSON-Tags geben? (Falsche Worte, um diese Dinge ohne Zweifel zu beschreiben)
Vielen Dank
Ändern Sie einfach %code% in %code%
Pekka hat wahrscheinlich Recht, aber ich möchte hinzufügen, dass Sie mehr Arbeit für sich selbst machen, indem Sie %code% für jede Zeile aufrufen. Es ist wahrscheinlich besser, Ihre Datenstruktur aufzubauen, und dann rufen Sie %code% auf:
%Vor%Als Community-Wiki markieren, da dies ein Vorschlag zur Übung ist und keine Antwort .
Dies liegt daran, dass Sie %code% (Hervorhebung von mir): mysqli_fetch_array () ist eine erweiterte Version der Funktion mysqli_fetch_row (). Zusätzlich zum Speichern der Daten in den numerischen Indizes des Ergebnisarrays kann die Funktion mysqli_fetch_array () die Daten auch in assoziativen Indizes speichern, wobei die Feldnamen der Ergebnismenge als Schlüssel verwendet werden. Verwenden Sie stattdessen %code% .
Ich erhalte einige Daten aus einer Datenbank und binde sie nach json:
%Vor%, aber anstatt die JSON-Zeichenfolge im folgenden Format zu erhalten:
%Vor%Ich bekomme jeden Wert dupliziert, weil es mir den Elementnamen als den Index eines assoziativen und nicht-assoziativen Arrays gibt. Also ich bekomme:
%Vor%Während ich noch den json benutzen kann. Es ist immer noch doppelt so groß wie ich es möchte und daher nicht effizient. Gibt es überhaupt ich kann die json_encode-Methode, um mir nur die assoziativen Array-Inices als JSON-Tags geben? (Falsche Worte, um diese Dinge ohne Zweifel zu beschreiben)
Vielen Dank
Dies liegt daran, dass Sie mysqli_fetch_array () ist eine erweiterte Version der Funktion mysqli_fetch_row (). Zusätzlich zum Speichern der Daten in den numerischen Indizes des Ergebnisarrays kann die Funktion mysqli_fetch_array () die Daten auch in assoziativen Indizes speichern, wobei die Feldnamen der Ergebnismenge als Schlüssel verwendet werden. Verwenden Sie stattdessen fetch_array()
(Hervorhebung von mir):
fetch_assoc()
.
Ändern Sie einfach $row = $result->fetch_array();
in $row = $result->fetch_assoc();
Pekka hat wahrscheinlich Recht, aber ich möchte hinzufügen, dass Sie mehr Arbeit für sich selbst machen, indem Sie json_encode()
für jede Zeile aufrufen. Es ist wahrscheinlich besser, Ihre Datenstruktur aufzubauen, und dann rufen Sie json_encode()
auf:
Als Community-Wiki markieren, da dies ein Vorschlag zur Übung ist und keine Antwort .