php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.12.2008, 21:05  
Neuer Benutzer
 
Registriert seit: 22.12.2008
Beiträge: 4
DjDope befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Problem bei Daten auslesen mit foreach

Hi,

ich habe folgende XML-Zeilen die ich aus einer Datei auslesen möchte:

Code:
 <skill key="skinning" max="450" name="Kürschnerei" value="450"/>
<skill key="leatherworking" max="450" name="Lederverarbeitung" value="450"/>
wie ihr seht heißen beide Zeilen absolut gleich, ich habe nun versucht es so auszulesen:

PHP-Code:
foreach ($xml->characterInfo->characterTab->professions->skill as $ar4) {
$b7[0] = $ar4['name'];
$b8[0] = $ar4['value'];
$b9[0] = $ar4['max'];
$b7[1] = $ar4['name'];
$b8[1] = $ar4['value'];
$b9[1] = $ar4['max'];

Hab es auch mit einem _ vor dem [] probiert usw. aber ich bekomme die zweiten Daten nicht ausgelesen, die ersten mit diesem Code aber schon.
Wie komm ich an die zweiten Daten ran?

Danke schonmal, DjDope
DjDope ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.12.2008, 21:42  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Funktioniert bei mir mit genau Deiner foreach-Schleife
PHP-Code:
<?php
$xml 
simplexml_load_string('<xml>
  <characterInfo>
    <characterTab>
      <professions>
        <skill key="skinning" max="450" name="Kürschnerei" value="450"/>
        <skill key="leatherworking" max="450" name="Lederverarbeitung" value="450"/>
      </professions>
    </characterTab>
  </characterInfo>
</xml>'
);

foreach (
$xml->characterInfo->characterTab->professions->skill as $ar4) { 
  echo 
$ar4['name'], ' '$ar4['value'], "\n";
}
WoW Amory?
David ist offline  
Alt 22.12.2008, 22:53  
Neuer Benutzer
 
Registriert seit: 22.12.2008
Beiträge: 4
DjDope befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von David Beitrag anzeigen
Funktioniert bei mir mit genau Deiner foreach-Schleife
PHP-Code:
<?php
$xml 
simplexml_load_string('<xml>
  <characterInfo>
    <characterTab>
      <professions>
        <skill key="skinning" max="450" name="Kürschnerei" value="450"/>
        <skill key="leatherworking" max="450" name="Lederverarbeitung" value="450"/>
      </professions>
    </characterTab>
  </characterInfo>
</xml>'
);

foreach (
$xml->characterInfo->characterTab->professions->skill as $ar4) { 
  echo 
$ar4['name'], ' '$ar4['value'], "\n";
}
WoW Amory?
Ja, ist die WoW Amory.
Wenn ich es ausgebe klappt es so auch, ich will die Werte aber nicht ausgeben sondern einer Variable zuweisen und in meiner DB speichern damit ich nur einmal am Tag den WoW-Server wegen meiner Daten bemühen muss.

Und dem
PHP-Code:
$ar4['name'
kann ich ja kein [] mehr anfügen (zumindest kam bei mir nichts bei raus außer Fehlermeldungen.
DjDope ist offline  
Alt 22.12.2008, 23:00  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von DjDope Beitrag anzeigen
Ja, ist die WoW Amory.
Wenn ich es ausgebe klappt es so auch, ich will die Werte aber nicht ausgeben sondern einer Variable zuweisen und in meiner DB speichern damit ich nur einmal am Tag den WoW-Server wegen meiner Daten bemühen muss.

Und dem
PHP-Code:
$ar4['name'
kann ich ja kein [] mehr anfügen (zumindest kam bei mir nichts bei raus außer Fehlermeldungen.
Dein Code macht keinen wirklichen Sinn. Du schreibst immer wieder in die gleichen Variablen, z.b.
$b7[0] = $ar4['name'];
Das heißt du schreibst bei jedem Schleifendurchlauf in $b7[0] - das heißt auch, das nur der letzte Schleifendurchlauf im Endeffekt in deinen Variablen verbleiben wird.

Warum du nun den ERSTEN Datensatz behälst versteh ich nicht ganz, kann mir höchstens vorstellen das xml-dateien aus irgendeinem grund umgekehrt geparst werden oder so ein quatsch. weiß nicht, auf jeden fall versuch mal sowas wie
$b7[] = $ar4['name'];
und gibt nach der schleife mal
print_r($b7);
aus ... da sollte dann alles drinnenstehn.

mfg
BlackWolf ist offline  
Alt 22.12.2008, 23:04  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von DjDope Beitrag anzeigen
Wenn ich es ausgebe klappt es so auch, ich will die Werte aber nicht ausgeben sondern einer Variable zuweisen und in meiner DB speichern damit ich nur einmal am Tag den WoW-Server wegen meiner Daten bemühen muss.
Weshalb machst du das ganze nicht gleich wie die Ausgabe und statt es dort auszugeben schreibst du's direkt in die mysql-db?


PHP-Code:
<?php
$xml 
simplexml_load_string('<xml>
  <characterInfo>
    <characterTab>
      <professions>
        <skill key="skinning" max="450" name="Kürschnerei" value="450"/>
        <skill key="leatherworking" max="450" name="Lederverarbeitung" value="450"/>
      </professions>
    </characterTab>
  </characterInfo>
</xml>'
);

foreach (
$xml->characterInfo->characterTab->professions->skill as $ar4) { 
  
$query "Insert into blablablablabla ... '".$ar4['name']."', ......";
  
$db->sql($query);
}

die eingabe ist nur ein beispiel und musst du selbstverständlich anpassen.


UPDATE: mehrdimensionale Arrays
Ausserdem gibts in PHP auch noch mehrdimensionale Arrays, damit du die anderen nicht überschreiben musst.
__________________

Geändert von webproger (22.12.2008 um 23:07 Uhr). Grund: mehrdimensionale arrays
webproger ist offline  
Alt 22.12.2008, 23:25  
Neuer Benutzer
 
Registriert seit: 22.12.2008
Beiträge: 4
DjDope befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von BlackWolf Beitrag anzeigen
weiß nicht, auf jeden fall versuch mal sowas wie
$b7[] = $ar4['name'];
und gibt nach der schleife mal
print_r($b7);
aus ... da sollte dann alles drinnenstehn.

Danke das hat mein Problem gelöst:
PHP-Code:
foreach ($xml->characterInfo->characterTab->professions->skill as $ar4) {
$b7[] = $ar4['name'];
$b8[] = $ar4['value'];
$b9[] = $ar4['max'];

$b7[0], $b7[1] etc. enthalten so die werte die ich in die DB speichern kann.


@webproger: das wären zu viele DB-Zugriffe bei ~30 Werten die abgefagt und in die db geschrieben werden sollen.
DjDope ist offline  
Alt 23.12.2008, 07:31  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von DjDope Beitrag anzeigen
@webproger: das wären zu viele DB-Zugriffe bei ~30 Werten die abgefagt und in die db geschrieben werden sollen.
Wenn da statt 30 dreihunderttausend stehen würde ...vielleicht
Aber wenn Dir das Sorgen macht, solltest Du Dir vielleicht prepared statements ansehen.
David ist offline  
Alt 23.12.2008, 09:46  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

genau so ist das.
__________________
webproger ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
problem mit gleiche datenbank inhalte auslesen miwo PHP Tipps 2008 3 17.09.2007 14:35
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
Daten aus Internetseite auslesen Zangelo PHP Tipps 2006 1 15.09.2006 15:18
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Problem beim Auslesen von MySQL: Fehler GSJLink PHP Tipps 2006 15 02.01.2006 17:37
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
[Erledigt] Daten aus einer Datenbank auslesen Datenbanken 2 04.09.2005 19:13
Daten aus Datenbank auslesen und in PHP-Seite anzeigen PHP Tipps 2005-2 1 28.08.2005 20:16
Daten aus Pw-Geschütztem bereich auslesen PHP-Fortgeschrittene 2 26.08.2005 15:27
wird der array überschrieben? foreach problem c-bass PHP Tipps 2005-2 7 15.08.2005 13:19
[Erledigt] Problem mit POST Daten PHP-Fortgeschrittene 5 18.05.2005 09:15
[Erledigt] Generierte Daten von anderem Host auslesen PHP Tipps 2005 2 15.05.2005 20:54
Problem bei Script Formular Daten und Baum PHP Tipps 2004 1 27.09.2004 23:19
[Erledigt] Nur bestimmte Daten auslesen und in Datenbank schreiben PHP Tipps 2004 2 26.09.2004 14:33
Daten aus einem Formular auslesen??? PHP-Fortgeschrittene 1 21.06.2004 17:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2008/50032-erledigt-problem-bei-daten-auslesen-mit-foreach.html, foreach datenbank auslesen, wow datenbank auslesen, simplexml_load_string foreach, simplexml_load_string auslesen, php mit foreach alles zeilen aus datenbank ausgeben, php schleife zum auslesen von xml elementen, simplexml_load_string gleiche elemente, wow xml klasse auslesen, foreach datenbank, php \simplexml_load_string\ foreach in foreach example, foreach nur key auslesen, php problem foreach erster eintrag, php xml auslesen mit key eingeben, datensatz aus db auslesen foreach php, xml mit einer schleife auslesen, tag foreach erster datensatz, foreach php datensatz, dateien auslesen mit foreach php, daten aus xml auslesen foreach php

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:14 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum