Mathias Brodala: SimpleXML

Beitrag lesen

Hallo Achim.

Problem: Abfrage mit simplexml in Schleife:

foreach ($xml->daten as $daten) {
if ($daten->wert1 == 2 || $daten->wert1 == 3 || $daten->wert1 == 4){
echo $daten->wert2;
}
}

Die If-Bedingung $daten->wert1 == 2 ist dynamisch und wechselt bei jeder Anfrage je nach übergebenen Variablen.

Inwiefern wechselt sie? Zu was? Wie sieht $xml aus? (print_r())

Die Werte der if-Bedingung (im Beispiel 1,2,3) wechseln und werden an die Seite via post übergeben. ($_POST["qstring"] ist z.B. '2,3,4').
Beim nächsten Aufruf wäre es z.B. 3,5 und die if-Anweisung müßte so aussehen:
if ($daten->wert1 == 3 || $daten->wert1 == 5)
Ich möchte nun die if-Anweisung in der Schleife dynamisch machen:
probier gerade rum:

Dein Ansatz ist schon einmal nicht schlecht. Hier einmal weiter ausgearbeitet:

if (isset($_POST['qstring'])) {  
  
  $arr_query = explode(',', $_POST['qstring']);  
  
  foreach ($xml->daten as $daten) {  
  
    if ([link:http://de.php.net/manual/function.in-array.php@title=in_array]($daten->wert1, $arr_query)) {  
  
      echo $daten->wert2;  
    }  
  }  
}

$postvar = $_POST["qstring"]; //liefert 2,3,4
$array = explode(",", $postvar);
$ifstring = "";
foreach ($array as $id) {
if ($id!= ""){
$ifstring =$ifstring."|| $poi->symid == ".$poiid;
}

Aber das geht ja nicht weil $poi->symid erst in der Schleife geschrieben wird...??

Was auch immer du damit meinst …

Einen schönen Mittwoch noch.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules