Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

JSON foreach fatal error

Fragen zum Thema PHP können hier gestellt werden

Moderatoren: Basti, Guillermo, Andreas W.

JSON foreach fatal error

Beitragvon Hoerti am 27.01.2012, 12:46

Hallo zusammen,

ich habe momentan ein kleines(mittlerweile großes) JSON-Problem.
Hier erstmal der Code:

Code: Alles auswählen
include('php/get_recipe_byID.php');

$recip = json_decode($recipe_byidarr, true);
print_r ($recip);

foreach ($recip['Data']['Recipes'] as $key => $newrecipe){
       // echo '<li>
         //<a href="/recipe_search.php?id=' . $recipe['ID'] . '">';
        echo   $newrecipe['TITLE'] ;
        echo '<br><br>';         
}



print_r ($recip) liefert folgendes:

Code: Alles auswählen
{"Data":{"Recipes":{"Recipe_61":{"ID":"61","TITLE":"Kn\u00f6del","TEXT":"kn","COUNT_PERSONS":"4","DURATION":"554","USER_ID":"5","DATE":"2012-01-20 08:35:03"}}},"Message":null,"Code":200}


Nun bekomme ich leider bei der foreach-Zeile einen Fehler, auf den ich leider nicht draufkomme:

Code: Alles auswählen
Fatal error: Cannot use string offset as an array in /var/www/recipe_search.php on line 49



Weiß von euch vielleicht jemand weiter? Ich kann mit leider nicht erklären, was der Grund dafür ist.
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: JSON foreach fatal error

Beitragvon my-webdesigner.com am 27.01.2012, 14:51

Hallo Hörti,

eine Vermutung besteht bereits (das Fehler liegt mgl. an $newrecipe), um das mit Sicherheit sagen zu können, bitte den ganzen Code posten oder zumindest sagen, welche die Zeile 49 ist und woher $newrecipe kommt.

Grüße
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: JSON foreach fatal error

Beitragvon Hoerti am 27.01.2012, 19:56

Also, mittlerweile bin ich mal soweit:

Code: Alles auswählen
include('php/get_recipe_byID.php');
$recipaaa = array();
$recipaaa = json_decode($recipe_byidarr, true);
foreach ($recipaaa['Data']['Recipes']['Recipe_' . $_GET['id']] as $key => $newrecipe1) {
        echo   $newrecipe1['TITLE'] ;
}


Das ist mein ganzer Code. Das $recipe_byidarr kommt direkt aus der PHP, die ich oben include. Das ganze wird dann aus dem JSON Format dekodiert und anschließend soll in der foreach der Titel ausgegeben werden.

Wichtig zu erwähnen ist mMn noch, dass das selbe Codeschnipsel an anderer Stelle funktionert. Einziger Unterschied ist, dass dort mehrere Datensätze JSON zurückkommen, hier kommt nur ein Rezept zurück. Wahrscheinlich muss man hier ansetzen, oder?

Die Namensgebung ist nun zu Testzwecken leider ein wenig hässlich. $newrecipe1 ist eine Variable, in die dann alles hineingeschrieben wird(Syntax geht einfach so).

Kannst du mir weiterhelfen?
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: JSON foreach fatal error

Beitragvon my-webdesigner.com am 28.01.2012, 12:30

Nein Hoerti, leider hast du meine Frage nicht beantwortet.
Fatal error: Cannot use string offset as an array in /var/www/recipe_search.php on line 49

Dieser Fehler verweist auf die Zeile 49 in der Datei, ich muss wissen, was in Zeile 49 steht, um dir helfen zu können.

Grüße
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: JSON foreach fatal error

Beitragvon Hoerti am 31.01.2012, 20:52

Na klar, sorry... In Zeile 49 steht folgendes:

Code: Alles auswählen
foreach ($recipaaa['Data']['Recipes']['Recipe_' . $_GET['id']] as $key => $newrecipe1) {


Sorry, dass ich mich erst heute wieder melde, hoffe trotzdem noch auf Hilfe.

Mfg
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: JSON foreach fatal error

Beitragvon my-webdesigner.com am 31.01.2012, 21:04

Die Fehlermeldung bedeutet, dass $recipaaa['Data']['Recipes']['Recipe_' . $_GET['id']] KEIN Array ist (was es aber sein sollte).
$key => $newrecipe1 soll das Array (das ja keines ist, sondern ein String) in Key-Value-Paare aufteilen.

Scheinbar hat sich davor ein Fehler eingeschlichen, hoffe du kannst mit der Information was anfangen.

Grüße
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: JSON foreach fatal error

Beitragvon Hoerti am 01.02.2012, 09:40

Aber was mich wundert ist, dass recipeaaa ja zuvor als Array instanziert wurde. Warum ist es dann hspäter plötzlich kein Array mehr?
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: JSON foreach fatal error

Beitragvon my-webdesigner.com am 01.02.2012, 11:03

Wenn du eine qualifizierte Antwort erhalten willst, poste doch den gesamten Code (gerne auch per PN wenn du das nicht öffentlich machen willst) ;)
PHP ist nicht typensicher und $recipaaa['Data']['Recipes']['Recipe_' . $_GET['id']] ist (offensichtlich) ein String im Array im Array im Array.

Grüße
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: JSON foreach fatal error

Beitragvon Hoerti am 01.02.2012, 16:49

Ok, ich habe den Fehler nun endlich(st :) ) gefunden, er lag im eingebundenen php-File. Dort fan eine Überprüfung statt, ob sich nur ein Eintrag im Array befindet welche jedoch fehlerhaft war.

Vielen Dank trotzdem für die Mühe hier, immer wieder toll :)

Mfg Hoerti
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: JSON foreach fatal error

Beitragvon my-webdesigner.com am 02.02.2012, 00:12

Gerne und - selbst ist der Mann.
Dann hat die Sache wenigstens einen edukativen Wert besessen ;)

Grüße
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste