php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.10.2005, 15:39  
Gast
 
Beiträge: n/a
Standard [Erledigt] Mehrere Datensätze in Datenbank updaten

Hallo bin neu hier und habe ein großes Anliegen!

Ich habe hier einen Screenshot gemacht:

Darauf ist ein Formular zu erkennen, in das die Datensätze aus der MySQL-Datenbank ausgelesen werden. Mit einem Klick auf "In Datenbank speichern" sollen alle Datensätze aus dem Formular in die Datenbank mit einem UPDATE Befehl aktualisiert werden. Bei mir wird allerdings immer nur der letzte Datensatz eingetragen. Hier noch der Code:

PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Termine Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php

    
// Mit der Datenbank verbinden
    
$connect mysql_connect"localhost""webuser""web_database" );
    
$db mysql_select_db"web" );
    
    if( isset( 
$_REQUEST['hidden'] ) && $_REQUEST['hidden'] == "send" ) {
        
        
$que "UPDATE termine_neu SET Von='".$_REQUEST['form_von']."', Bis='".$_REQUEST['form_bis']."', Termin='".$_REQUEST['form_termin']."', Schueler='".$_REQUEST['form_schueler']."', Lehrer='".$_REQUEST['form_lehrer']."', RP='".$_REQUEST['form_RP']."' WHERE ID='".$_REQUEST['form_id']."'";
    
        
$res mysql_query$que );

    }
    
    
$query "SELECT * FROM termine_test ORDER BY Von asc";
    
$result mysql_query$query );
    
$num mysql_num_rows$result );
    
?>

<form name="form_termine_<?php echo $datensatz['ID']; ?>" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table width="775" border="0">

<?php

    
for( $i=0$i<$num$i++ ) {
        
$datensatz mysql_fetch_array$result );

?>
    <tr>
      <td width="20">ID</td>
      <td width="107">Von</td>
      <td width="107">Bis</td>
      <td width="459">Termin</td>
      <td width="14">S</td>
      <td width="14">L</td>
      <td width="24">RP</td>
    </tr>
    <tr>
      <td><?php echo $datensatz['ID']; ?></td>
      <td><input name="form_von_<?php echo $datensatz['ID']; ?>" type="text" size="15" value="<?php echo $datensatz['Von']; ?>"></td>
      <td><input name="form_bis_<?php echo $datensatz['ID']; ?>" type="text" size="15" value="<?php echo $datensatz['Bis']; ?>"></td>
      <td><input name="form_termin_<?php echo $datensatz['ID']; ?>" type="text" size="64" value="<?php echo $datensatz['Termin']; ?>">
      <input name="form_id_<?php echo $datensatz['ID']; ?>" type="hidden" value="<?php echo $datensatz['ID']; ?>"></td>
      <td><input name="form_schueler_<?php echo $datensatz['ID']; ?>" type="text" size="2" value="<?php echo $datensatz['Schueler']; ?>"></td>
      <td><input name="form_lehrer_<?php echo $datensatz['ID']; ?>" type="text" size="2" value="<?php echo $datensatz['Lehrer']; ?>"></td>
      <td><input name="form_RP_<?php echo $datensatz['ID']; ?>" type="text" size="2" value="<?php echo $datensatz['RP']; ?>"></td>
    </tr>

    <?php ?>
    </table>
    

    <input name="form_save" type="submit" value="In Datenbank speichern">
    <input name="hidden" type="hidden" value="send">
</form>
  
</body>
</html>
Ich hoffe ihr könnt mir helfen.
Liebe Grüße Thomas
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.10.2005, 16:10  
Gast
 
Beiträge: n/a
Standard

du musst bei dem Updaten auch eine while(); bzw. for(); schleife einbauen. sonnst wird immer nur der letzte datensatz geändert.
 
Alt 22.10.2005, 16:12  
Gast
 
Beiträge: n/a
Standard

Und wie mach ich das, damit nicht zum Beispiel dreimal der selbe Datensatz geändert wird, sondern ID=1, ID=2, ID=3,...
 
Alt 22.10.2005, 18:06  
Gast
 
Beiträge: n/a
Standard

Weiß das keiner? Ich brauche das dringend...
 
Alt 23.10.2005, 10:44  
Gast
 
Beiträge: n/a
Standard

hier ein Muster, das ich mal irgendwo gefunden habe:
Code:
/* ---------------------------------------------------------------------------------------- */
ein UPDATE für mehre Datensätze in 'einem Rutsch' ausführen lassen:

$MUSTER-query =
"
UPDATE
  Tabelle
SET     SpalteX = ELT(FIELD(id,'id1','id2','id3'),'WertX1','WertX2','WertX2')
        SpalteY = ELT(FIELD(id,'id1','id2','id3'),'WertY1','WertY2','WertY2')
        SpalteZ = ELT(FIELD(id,'id1','id2','id3'),'WertZ1','WertZ2','WertZ2')
WHERE                 FIELD(id,'id1','id2','id3')
";

Vorgehensweise:
1. Baue eine $ID_Liste , welche die IDs der zu ändernden Datensätze aufnimmt:
   $ID_Liste = "id1','id2','id3";  // Achtung: die Kommas in '' einfassen !!!

2. Baue eine $WertX_Liste,
   welche die Werte für die SpalteX in Reihenfolge der IDs von $ID_Liste aufnimmt:
   $WertX_Liste = "X1','X2','X3";  // Achtung: die Kommas in '' einfassen !!!

2a. Gleiches Vorgehen für die SpalteY und SpalteZ !

3. Alles zusammenbauen:
   $query = " UPDATE tabelle SET "
          . " SpalteX = ELT(FIELD(id,'$ID_Liste'),'$WertX_Liste') "
          . " WHERE FIELD(id, '$ID_Liste') ";

4. Das ganze mit echo $query überprüfen!!!
/* ---------------------------------------------------------------------------------------- */
Dort wird gezeigt, wie man mehrere Datensätze 'in einem Rutsch' updaten kann.
Es wird leider NICHT gezeigt,
wie das entsprechende Eingabe-Formular gestaltet sein muss,
und wie man aus einem Eingabe-Formular eine solche UPDATE-Anweisung generiert.

Diesbezüglich bin ich zur Zeit überfragt,
und habe leider auch nicht Zeit genug, mich weiter damit zu befassen.

Verstehe dieses nur als einen Hinweis, daß das machbar ist.

~dilemma~
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbank am Anfang des Monats updaten dex PHP Tipps 2008 6 27.06.2008 10:04
Ergebnis in Datenbank updaten? jensK Datenbanken 5 29.12.2005 15:45
Datenbank updaten? PHP Tipps 2007 1 16.12.2005 11:00
Mehrere Datensätze in Datenbank updaten PHP-Fortgeschrittene 9 23.10.2005 11:04
Probleme beim Datenupload zu meiner Datenbank Datenbanken 3 05.09.2005 19:47
Links aus Datenbank überprüfen und wen defekt spalte updaten PHP Tipps 2005-2 2 05.09.2005 11:34
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
massenformular updaten chief-thomson PHP Tipps 2005 15 06.04.2005 20:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbankupdate mehrere datensätze gleichzeitig, php eingabeformular für mehrere datensätze

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.