foreach mehrere variablen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • foreach mehrere variablen

    Hallo!
    :>

    Ich hab von einer ausgabe mehrere ID's via GET übergeben, und bekomme dadurch die Liste mit den ausgewählten Datensätzen.
    Die Namen des entstanden formulars ist ja in jeder zeile gleich, doch bearbeitet werden soll ja jedes einzeln!
    Natürlich muss dies via foreach() gelöst werden, doch ich weiss nicht so ganz wie.
    Irgendwie muss das ganze ja mit einer foreach verschachtelung gemacht werden oder? O_o

    Hier mal mein code:
    PHP Code:
    $NAME = (isset($_POST['name'])) ? $_POST['name'] : "";  
    $LIEFERANT = (isset($_POST['lieferant'])) ? $_POST['lieferant'] : "";  
    $NUMMER = (isset($_POST['nummer'])) ? $_POST['nummer'] : "";  
    $GERICHT = (isset($_POST['gericht'])) ? $_POST['gericht'] : "";  
    $PREIS = (isset($_POST['preis'])) ? $_POST['preis'] : "";
    $ID = (isset($_POST['ID'])) ? $_POST['ID'] : "";

    if(
    $gericht != "" or $nummer != "")
        {
        foreach(
    $ID as $id$PREIS as $preis$NAME as $name$LIEFERANT as $lieferant$NUMMER as $nummer$GERICHT as $gericht)
            {
            if(
    $name != "" and $lieferant != "" and $preis != "")
                {
                
    $aendern "UPDATE bestellung SET name = '$name', lieferant = '$lieferant', nummer = '$nummer', gericht = '$gericht', preis= '$preis' WHERE (ID IN('$id'))";
                
    $aender mssql_query($aendern);
                }
            }
        } 
    Die GROßGESCHRIEBENEN Variablen sind die oben erklärten Arrays.
    Doch wie kann ich es erreichen, dass er für jede "zeile" einmal das update macht?
    Hier nochmal ein screen zur verdeutlichung:

    Klick Mich!

    (denn im moment updatet er nur die letzte zeile)

    Bitte um hilfe :/
    Gruß
    Scorpion

  • #2
    zeig mal deine "inputs" im html-quelltext... ich vermute mal, dass da dein problem liegt
    **********
    arkos
    **********

    Comment


    • #3
      PHP Code:
      if($ident == "Bearbeiten" and $ID != "")
          {
          echo 
      "<table border='0' class='content_p'><form method='post' action='storno.php' name='edit'>";
          foreach(
      $ID as $id)
              {
              
      $abfrage "SELECT * FROM bestellung WHERE (ID IN('$id'))";
              
      $ergebnis mssql_query($abfrage);
              while (
      $row mssql_fetch_object($ergebnis))
                  {
                  echo 
      "<tr class='content_p'><td><select name='name[]'>";
                  
      $aabfrage "SELECT name, nachname FROM username";
                  
      $aergebnis mssql_query($aabfrage);
                  while(
      $arow mssql_fetch_object($aergebnis))
                      {
                      
      $aname "$arow->name $arow->nachname";
                      if(
      $aname == $row->name)
                          {
                          echo 
      "<option selected>$aname</option>";
                          }
                      else
                          {
                          echo 
      "<option>$aname</option>";
                          }
                      }
                  echo 
      "</select></td>
                      <td><input value='
      $row->gericht' name='gericht[]' type='text' style='width:140px;'></td>
                      <td><input value='
      $row->nummer' name='nummer[]' type='text' style='width:30px;'></td>
                      <td><select name='lieferant[]'>"
      ;
                  
      $aabfrage "SELECT Name FROM lieferant";
                  
      $aergebnis mssql_query($aabfrage);
                  while(
      $arow mssql_fetch_object($aergebnis))
                      {
                      if(
      $arow->Name == $row->lieferant)
                          {
                          echo 
      "<option selected>$arow->Name</option>";
                          }
                      else
                          {
                          echo 
      "<option>$arow->Name</option>";
                          }
                      }
                  echo 
      "</select></td>
                      <td><input value='
      $row->preis' name='preis[]' type='text' style='width:50px;'></td>
                      <td><input value='
      $row->ID' name='ID[]' type='text' style='width:50px;visibility:hidden;'></td>
                      </tr>"
      ;
                  }
              }
          echo 
      "<tr><td><input type='submit' value='Ändern'></td></tr></form></table>";
          } 
      **EDIT**

      Naja ich glaube nicht, dass es daran liegt (aber nichts ist unmöglich), aber das foreach in der form, wie ich es nutze geht ja schonmal überhaupt nicht:
      PHP Code:
      foreach($ID as $id$PREIS as $preis$NAME as $name$LIEFERANT as $lieferant$NUMMER as $nummer$GERICHT as $gericht
      immerhin krieg ich ja auch ne fehlermeldung ausgespuckt.
      Last edited by DJScorpion; 06-11-2007, 09:09.

      Comment


      • #4
        is das n HTML - quelltext??? (edit: und was sagt n print_r($_POST)??
        **********
        arkos
        **********

        Comment


        • #5
          nein das war der code aus meiner storno_.php

          also hier:

          print_r ($PREIS);
          print_r ($NUMMER);
          print_r ($NAME);
          print_r ($GERICHT);
          print_r ($LIEFERANT);
          print_r ($ID_);

          Array
          (
          [0] => 4.2
          [1] => 5.2
          )
          Array
          (
          [0] =>
          [1] => 77
          )
          Array
          (
          [0] => Holger Beer
          [1] => Till Ruprecht
          )
          Array
          (
          [0] =>
          [1] =>
          )
          Array
          (
          [0] => Da Paolo
          [1] => Da Paolo
          )
          Array
          (
          [0] => 52
          [1] => 53
          )

          das ist ja schonmal so, wie es soll!
          ...jetzt fehlt halt nur noch das update "gedöns" ....

          das wäre ja hier:
          PHP Code:
          if($GERICHT != "" or $NUMMER != "")
              {
              foreach(
          $ID_ as $id)
                  {
                  if(
          $NAME != "" and $LIEFERANT != "" and $PREIS != "")
                      {
                      
          $aendern "UPDATE bestellung SET name = '$NAME', lieferant = '$LIEFERANT', nummer = '$NUMMER', gericht = '$GERICHT', preis= '".trim($PREIS)."' WHERE (ID IN('$id'))";
                      
          $aender mssql_query($aendern);
                      }
                  }
              } 
          ööhm... willste trotzdem ncoh den quellcode?

          Comment


          • #6
            Re: foreach mehrere variablen

            PHP Code:
            foreach( $ID as $index=>$id ) {
              
            $preis $PREIS[$index];
              
            $name $NAME[$index];
              
            $lieferant $LIEFERANT[$index];
              
            $nummer $NUMMER[$index];
              
            $gericht $GERICHT[$index];
              
            // ...

            ??

            Comment


            • #7
              ok danke!
              vielen dank für die hilfe...
              genau das mit dem $index hab ich nich gewusst / verstanden!
              aber so ist's klar!

              und damit gehts:
              PHP Code:
              if($ID_ != "")
                  {
                  foreach(
              $ID_ as $index=>$id )
                      {
                      
              $preis $PREIS[$index];
                      
              $name $NAME[$index];
                      
              $lieferant $LIEFERANT[$index];
                      
              $nummer $NUMMER[$index];
                      
              $gericht $GERICHT[$index];
                      if(
              $NAME != "" and $LIEFERANT != "" and $PREIS != "")
                          {
                          
              $aendern "UPDATE bestellung SET name = '$name', lieferant = '$lieferant', nummer = '$nummer', gericht = '$gericht', preis= '$preis' WHERE (ID IN('$id'))";
                          
              $aender mssql_query($aendern);
                          }
                      }
                  } 

              Comment


              • #8
                PHP Code:
                if($ID_ != "") {
                // ...
                if($NAME != "" and $LIEFERANT != "" and $PREIS != ""
                Ein Array ist immer ungleich einer leeren Zeichenkette

                Comment

                Working...
                X