PHP und XML Problem

  • Thread-Ersteller Thread-Ersteller spike
  • Erstellungsdatum Erstellungsdatum

spike

L17: Mentor
Thread-Ersteller
Seit
31 Jul 2002
Beiträge
13.075
Switch
5475 6122 1625
Hallo!

Ich hoffe es kann mir jemand helfen, denn ich bin schon etwas am Verzweifeln...

ich versuche nämlich Daten aus einer XML-Datei per PHP auf einer Webseite auszugeben.

Es geht dabei um News-Artikel. Auf der Hauptseite liest mir das Skript alle Einträge in der XML-Datei aus und gibt diese in Kurzform (Überschrift, Datum etc...) untereinander aus. Das funktioniert wunderbar. Auf jeden einzelnen Eintrag kann man auch klicken und man könnte dann den kompletten Artikel lesen.

Hier tritt aber ein Fehler auf, den ich nicht verstehen kann.

Nehmen wir an, ich möchte den Artikel Nr. 5 lesen und der link lautet dann ...artikel.php?id=5

Zuerst hole ich mir die id-Nummer aus der URL-Leiste:
Code:
$x = $_GET['id']

Weiter unten hole ich mir dann das xml-file
Code:
$xml = simplexml_load_file('article/article.xml');

Und darunter möchte ich dann die einzelnen Elemente des XML-Files über die Index-Nummer ausgeben.
Code:
echo $xml->article[$x]->title.'<br>';

Und hier ist mein Problem...wenn ich händisch "...->article[5]->..." schreibe, dann gibt mir das Skript auch perfekt die 5. Überschrift aus - so wie es sein soll. verwende ich jedoch die Variable $x dann wird mir rein gar nichts angezeigt. Nicht mal eine Fehlermeldung bekomme ich. Obwohl diese Variable in meinem Beispiel den Wert "5" enthält und somit genau das gleiche wäre, als wenn ich es fix hineinschreiben würde.

Ich hoffe es kann mir jemand helfen...unsere Admins sind doch ziemliche Pros darin, vielleicht wissen die wo ich einen Fehler gemacht habe.
 
Ich hab zwar schon ewig kein PHP mehr gecodet, aber ich könnt mir vorstellen, dass es deswegen nicht funktioniert weil $x in deinem Beispiel ein string ist und dadurch nicht als Array-Index verwendet werden kann. Kannst ja mal probieren $x in nen int zu casten.
 
Ich hab zwar schon ewig kein PHP mehr gecodet, aber ich könnt mir vorstellen, dass es deswegen nicht funktioniert weil $x in deinem Beispiel ein string ist und dadurch nicht als Array-Index verwendet werden kann. Kannst ja mal probieren $x in nen int zu casten.

Vielen Dank, es hat funktioniert, obwohl ich mir nicht erklären kann warum. Denn ich hab ein ähnliches Prinzip bei einem anderen Array verwendet und da hat es geklappt, ohne, dass ich die Variable umwandeln musste. Daher dachte ich nicht, dass es wirklich daran liegen könnte.

Hmpf...ich weiß warum ich programmieren und coden hasse...manche Sachen sind einfach total unlogisch.
 
Vielen Dank, es hat funktioniert, obwohl ich mir nicht erklären kann warum. Denn ich hab ein ähnliches Prinzip bei einem anderen Array verwendet und da hat es geklappt, ohne, dass ich die Variable umwandeln musste. Daher dachte ich nicht, dass es wirklich daran liegen könnte.

Hmpf...ich weiß warum ich programmieren und coden hasse...manche Sachen sind einfach total unlogisch.
Naja $_GET[$key] liefert halt nur strings zurück. Hast du das bei dem anderen Beispiel auch verwendet? Außerdem könnte das andere Array auch ein assoziatives Array gewesen sein, da kann der Key auch ein String sein.
 
Naja $_GET[$key] liefert halt nur strings zurück. Hast du das bei dem anderen Beispiel auch verwendet? Außerdem könnte das andere Array auch ein assoziatives Array gewesen sein, da kann der Key auch ein String sein.

Ja, beim anderen Beispiel hats auch funktioniert und auch da habe ich es eigentlich mit dem Array-Index gemacht...alles sehr merkwürdig. Ich dachte vielleicht liegt es an einer Besonderheit beim XML-Import, obwohl die importierten Daten genauso in ein Array gespeichert werden.
 
Ja, beim anderen Beispiel hats auch funktioniert und auch da habe ich es eigentlich mit dem Array-Index gemacht...alles sehr merkwürdig. Ich dachte vielleicht liegt es an einer Besonderheit beim XML-Import, obwohl die importierten Daten genauso in ein Array gespeichert werden.
Kannst ja mal nen Auszug aus dem anderen Beispiel posten, dann kann ich dir vllt sagen, wo der Unterschied is.^^
 
Ich glaub ich weiß die Antwort, weil ich den Index quasi selbst bestimmt habe.

$x[1] = "text1";
$x[2] = "text2";
$x[3] = "text3";
$x[4] = "text3";

usw...
 
Könnt ihr mir vielleicht auch wetierhelfen? Ich muss ein einfaches Gästebuch schreiben. Mir fehlt nur leider die Software zum schreiben und interpretieren des Codes. In der Regel benutze ich den Editor für solche Sachen. Nur steig ich grad neu in PHP ein.

EDIT: Ahja, fast vergessen. Es sollte kostenlos sein.
 
Das einfachste wäre wohl http://www.apachefriends.org/de/xampp.html , damit kriegste am einfachsten nen lokalen Server für Testzwecke zum laufen wo du deinen Code dann ausführen kannst.
In Sachen Editor ist die Frage was du da möchtest. Ich selbst nutze seit Jahren Netbeans für größere (und eigentlich auch kleinere) Projekte, wenn du nur Syntaxhighlighting brauchst reicht auch locker JEdit oder Notepad++.
 
Zurück
Top Bottom