Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Datensätze in Datenbank updaten

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere Datensätze in Datenbank updaten

    Hallo! Da mir bei den Anfängern keiner helfen konnte, versuche ichs mal bei den Besseren

    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

  • #2
    Zitat von bani
    du musst bei dem Updaten auch eine while(); bzw. for(); schleife einbauen.
    Außerdem, musst du deine Form Felder nummerieren

    Die Einteilung bezieht sich auf die Fragen, nicht auf die Antworter....
    Diese Erweiterung ist EXPERIMENTELL.
    [...]
    Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

    Kommentar


    • #3
      Ok die Nummerierung hab ich im Code oben schon mal gemacht, aber wie mache ich jetzt die Schleife?

      Kommentar


      • #4
        In deinem Prog steht doch ne wunderschöne Schleife,
        Du musst nur in deinem Form noch mit zwei hidden fields die Start- und die Endnummer einbauen.
        for( $i=$_POST['start']; $i<=$_POST['ende']; $i++ ) {
        Diese Erweiterung ist EXPERIMENTELL.
        [...]
        Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

        Kommentar


        • #5
          danke werd ich mal versuchen

          Kommentar


          • #6
            sorry aber irgendwie komm ich nicht ganz zum ziel, ich mehr oder weniger auch noch ein anfänger. wenns dir nichts ausmacht, dann nimm doch meinen code von oben und bau die schleife und die zwei nummern ein, wo sie hingehören.

            Kommentar


            • #7
              No, waren genug Tips um es selbst hinzubekommen.
              Diese Erweiterung ist EXPERIMENTELL.
              [...]
              Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

              Kommentar


              • #8
                toll wie jemandem geholfen wird, wenn er nicht selbst zum ziel kommt. echt ein tolles forum

                Kommentar


                • #9
                  Zitat von vocken91
                  toll wie jemandem geholfen wird, wenn er nicht selbst zum ziel kommt. echt ein tolles forum
                  och wein doch.. -.-
                  hier (ungetestet):
                  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['submit']) && $_REQUEST['submit'] == "In Datenbank speichern") {
                          for(
                  $i=0;$i<=count($_REQUEST['id']);$i++) {
                              
                  mysql_query("UPDATE termine_neu SET Von='".$_REQUEST['von'][$i]."', Bis='".$_REQUEST['bis'][$i]."', Termin='".$_REQUEST['termin'][$i]."', Schueler='".$_REQUEST['schueler'][$i]."', Lehrer='".$_REQUEST['lehrer'][$i]."', RP='".$_REQUEST['RP'][$i]."' WHERE ID='".$_REQUEST['id'][$i]."'") or die(mysql_error());
                          }
                      }
                      
                  $res mysql_query("SELECT * FROM termine_test ORDER BY Von ASC") or die(mysql_error());
                      if(
                  mysql_num_rows($res) > 0) {
                          echo <<<HTML
                  <form method="post" action="">
                  <table width="775" border="0">
                  HTML;
                          while(
                  $row mysql_fetch_assoc($res)) {
                              echo <<<HTML
                      <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>
                  ${row['ID']}</td>
                        <td><input name="von[]" type="text" size="15" value="
                  ${row['Von']}"></td>
                        <td><input name="bis[]" type="text" size="15" value="
                  ${row['Bis']}"></td>
                        <td><input name="termin[]" type="text" size="64" value="
                  ${row['Termin']}">
                        <td><input name="schueler[]" type="text" size="2" value="
                  ${row['Schueler']}"></td>
                        <td><input name="lehrer[]" type="text" size="2" value="
                  ${row['Lehrer']}"></td>
                        <td><input name="RP[]" type="text" size="2" value="
                  ${row['RP']}"></td>
                        <input name="id[]" type="hidden" value="
                  ${row['ID']}"></td>
                      </tr>
                  HTML;
                          }
                      }
                  ?>
                     </table>
                      

                      <input name="submit" type="submit" value="In Datenbank speichern">
                  </form>
                  </body>
                  </html>

                  eagleScripts.de

                  Kommentar


                  • #10
                    Auf Leute, die ankommen und meinen "hey, mach mal meine Arbeit", ohne erkennen zu lassen, dass sie sich selbst mit ihrem Problem beschäftigen, wird halt nicht so viel Energie aufgewandt, und im Fortgeschrittenen-Forum schon gar nicht.

                    Der Beitrag wurde geschlossen, wegen...
                    ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..
                    ... Doppelpostings.

                    Bemerkung:
                    Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

                    closed
                    mod = master of disaster

                    Kommentar

                    Lädt...
                    X