Mehrere Datensätze gleichzeitig ändern

Wenn ich meine Abfrage also ausgeben lasse, dann sieht das so aus:
PHP:
UPDATE ls_daten SET bestand_akt_neu = 'Array', bestand_eur = 'Array', WHERE Id = 'Array'

MfG Maik
 
Hallo,

also hier einmal ein Beispiel einer Adressdatenbank,
die mit einem Formular alle Datensätze nach Wunsch
ändert. Soll Dir die Funktionsweise zeigen!

1.) Datei z.B. formular_update.php
PHP:
<?php
     // Datei formular_update.php
     error_reporting(E_ALL);
     
     include ('con.inc.php'); 
    
     mysql_select_db('Datenbankname',$link);    
     $result = mysql_query("SELECT 
                                   *
                            FROM 
                                   `Tabelle`");
    
     while($row = mysql_fetch_assoc($result)){  


     echo '<form action="upload.php" method="post">';
     echo '<input type="hidden" name="ID[]" value="'.$row['ID'].'">';
     echo '<table width="600" bgcolor="#999999" align="center" border="0" cellpadding="0" cellspacing="2"> ';
     echo '<tr>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input type="text" name="Nr[]" value="'.$row['Nr'].'" class="input" size="10" maxlength="20"></td>';
echo '<td width="160" bgcolor="#CCCCCC" align="center"><input type="text" name="Name[]" value="'.$row['Name'].'" class="input" size="25" maxlength="50"></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input type="text" name="PLZ[]" value="'.$row['PLZ'].'" class="input" size="10" maxlength="20"></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input type="text" name="Ort[]" value="'.$row['Ort'].'" class="input" size="10" maxlength="30"></td>';
echo '<td width="90" bgcolor="#CCCCCC" align="center"><input type="text" name="Strasse[]" value="'.$row['Strasse'].'" class="input" size="10" maxlength="20"></td>';
echo '<td width="80" bgcolor="#CCCCCC" align="center"><input type="text" name="Telefon[]" value="'.$row['Telefon'].'" class="input" size="10" maxlength="20"></td>';
     echo '</tr>';
     echo '</table><br>';
     }
     echo '<div align="center">';
     echo '<input type="submit" name="senden" value="Update">';
     echo '</div>';
     echo '</form>';
?>
2.) Datei z.B. update.php
PHP:
<?php 
    // Datei upload.php
      if($_POST['senden']){
      error_reporting(E_ALL);    
            
            $id = $_POST['ID'];
      $nr = $_POST['Nr'];
      $name = $_POST['Name'];
      $plz = $_POST['PLZ'];
      $ort = $_POST['Ort'];
      $strasse = $_POST['Strasse'];
      $telefon = $_POST['Telefon'];
       
        include ('connection.inc.php'); 
    
      mysql_select_db('Datenbank',$link);
      $sql = "SELECT 
                     * 
              FROM 
                    `Tabelle`";
      $res = mysql_query($sql);
      $row = mysql_num_rows($res);
              
      for($i=0;$i < $row;$i++){            
      mysql_query ("UPDATE 
                          `Tabelle` 
                    SET 
                          `ID` = '".$id[$i]."' , 
                          `Nr` = '".$nr[$i]."' , 
                          `Apothekenname` = '".$name[$i]."', 
                          `PLZ` = '".$plz[$i]."', 
                          `Ort` = '".$ort[$i]."', 
                          `Strasse` = '".$strasse[$i]."', 
                          `Telefon` = '".$telefon[$i]."'
                    WHERE
                          `ID` = '".$id[$i]."'") or die("FEHLER:<br><br>".mysql_error()); 
      }                                                
      $mar = mysql_affected_rows();
      if ($mar > 0)
      {
      echo "<h3>Datensatz wurde geändert.</h3>";
      }
      else
      {
echo "<b><font face='Arial' size='2'>Es wurden keine Änderungen an diesem Datensatz vorgenommen.</font></b><p>";
      }
      }    
?>
Habe so etwas im Einsatz und es ist sehr gut in der Handhabung und Funktionsweise.

Hoffe ich konnte Dir ein wenig helfen?

Gruß

RS9999
 
Naja das war mir ja auch klar, nur eben nicht wie die Schleife dann aussehen soll.
Ich habe jetzt beim weiteren Testen festgestellt das ich bei der Updateanweisung einen vorhanden Wert nicht ersetzen darf sondern addieren muß.

Bei einer normalen Abfrage ist das ja kein Problem:
PHP:
mysql_query("UPDATE tabelle SET eins = eins + $eins, WHERE id = '$id'");
Aber bei dieser Form habe ich es bis jetzt nicht geschafft.
Ich habe schon verschiedene Schreibweisen probiert aber ohne Erfolg.
PHP:
for($i=0;$i < $row;$i++){            
      mysql_query ("UPDATE 
                          `Tabelle` 
                    SET 
                          `ID` = '".$id[$i]."' , 
                          `Nr` = '".$nr[$i]."' , 
                          `Apothekenname` = '".$name[$i]."', 
                          `PLZ` = '".$plz[$i]."', 
                          `Ort` = '".$ort[$i]."', 
                          `Strasse` = '".$strasse[$i]."', 
                          `Telefon` = '".$telefon[$i]."'
                    WHERE
                          `ID` = '".$id[$i]."'") or die("FEHLER:<br><br>".mysql_error()); 
      }

MfG Maik
 
Zurück