___ qstntxt ___

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

    
___ answer4663057 ___

Ändern Sie einfach %code% in %code%

    
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ tag123json ___ JSON (JavaScript Object Notation) ist ein Textdatenaustauschformat und sprachunabhängig. Verwenden Sie dieses Tag, wenn dieses Textformat beteiligt ist. VERWENDEN SIE DIESEN TAG NICHT FÜR NATIVE JAVASCRIPT-OBJEKTE ODER JAVASCRIPT OBJECT LITERALS. Bevor Sie eine Frage stellen, wenn Sie glauben, dass Ihre JSON-Datei gültig ist, überprüfen Sie sie bitte in einem JSON-Validator wie JSONLint, damit Ihre Frage beantwortet wird, bevor Sie sie stellen. ___ answer4663098 ___

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 .

    
___ answer4663043 ___

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% .

    
___

8

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

    
Joe 11.01.2011, 21:50
quelle

3 Antworten

24

Dies liegt daran, dass Sie fetch_array() (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 fetch_assoc() .

    
Pekka 웃 11.01.2011, 21:52
quelle
3

Ändern Sie einfach $row = $result->fetch_array(); in $row = $result->fetch_assoc();

    
Valera Leontyev 11.01.2011 21:53
quelle
3

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:

%Vor%

Als Community-Wiki markieren, da dies ein Vorschlag zur Übung ist und keine Antwort .

    
ken 11.01.2011 21:58
quelle

Tags und Links