Achim: SimpleXML

Tach,
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. Wie ich die If-Anweisung dynamisieren?

Gruß
Achim

  1. 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())

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. 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:

      $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...??

      Achim

      1. 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
        1. Super, danke genau das hab ich gesucht !!!
          Jetzt Feierabend!