foreach mehrere variablen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    **********

    Kommentar


    • #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.
      Zuletzt geändert von DJScorpion; 06.11.2007, 10:09.

      Kommentar


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

        Kommentar


        • #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?

          Kommentar


          • #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];
              
            // ...

            ??

            Kommentar


            • #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);
                          }
                      }
                  } 

              Kommentar


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

                Kommentar

                Lädt...
                X