Mehrfach Update mit einem Submit

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

  • Mehrfach Update mit einem Submit

    Ich bin noch anfänger in php und suche ein Tutorial oder ein kleines
    verständliches Musterscript um Felder einer mysql-Tabelle/Zeile upzudaten.

    Insert, Delete und auch einfache Updates (also nur einen Datensatz)
    verstehe ich soweit.

    hier soweit mein Ansatz:

    PHP-Code:
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "update_form")) {
      
    $updateSQL sprintf("UPDATE hersteller SET hersteller_nummer=%s,
    name=%s,
    kunden_nr=%s,
    telefon=%s,
    telefax=%s
    WHERE id=%s"
    ,
                           
    GetSQLValueString($_POST['hersteller_nummer'], "int"),
                           
    GetSQLValueString($_POST['name'], "text"),
                           
    GetSQLValueString($_POST['kunden_nr'], "text"),
                           
    GetSQLValueString($_POST['telefon'], "text"),
                           
    GetSQLValueString($_POST['telefax'], "text"),
                           
    GetSQLValueString($_POST['id'], "int"));

      
    mysql_select_db($database_zrafterbuylocal$zrafterbuylocal);
      
    $Result1 mysql_query($updateSQL$zrafterbuylocal) or die(mysql_error());

    Das Formular:
    PHP-Code:
    <?php do { ?>
        <form name="update_form" method="POST" action="<?php echo $editFormAction?>">
        <tr>
          <td><input type="checkbox" name="cb[]" value="<?php echo $row_hersteller['id']; ?>" /></td>
          <td><input name="id" type="hidden" value="<?php echo $row_hersteller['id']; ?>" />
    <?php echo $row_hersteller['id']; ?></td>
          <td><input name="hersteller_nummer" type="text" value="<?php echo $row_hersteller['hersteller_nummer']; ?>" /></td>
          <td><input name="name" type="text" value="<?php echo $row_hersteller['name']; ?>" /></td>
          <td><input name="kunden_nr" type="text" value="<?php echo $row_hersteller['kunden_nr']; ?>" /></td>
          <td><input name="telefon" type="text" value="<?php echo $row_hersteller['telefon']; ?>" /></td>
          <td><input name="telefax" type="text" value="<?php echo $row_hersteller['telefax']; ?>" /></td>
          <td>&nbsp;</td>      
           </tr>
    <?php } while ($row_hersteller mysql_fetch_assoc($hersteller)); ?>
    <input type="hidden" name="MM_update" value="update_form">
    <input name="update" type="submit" id="update" value="update" />
    </form>
    Wäre klasse wenn mir mal jemand ein Musterscript oder einen
    Beitrag dazu schreiben könnte.
    Vielen Dank!
    Zuletzt geändert von BöserMann; 27.09.2005, 13:26.

  • #2
    böse,böse, BöserMann. http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      Insert, Delete und auch einfache Updates (also nur einen Datensatz)
      verstehe ich soweit.
      Und WAS verstehst du nicht?
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Kommentar


      • #4
        Die Input-Types im Formular sind mit dem Befehl "name=" im PHP automatisch Variablen.

        PHP-Code:

        if(isset($update)) {

        sql_update "UPDATE deinetabelle SET hersteller_nummer= '$hersteller_nummer', name= '$name', kunden_nr= '$kunden_nr, usw.'";


        Hochachtungsvoll
        pingzaong

        Kommentar


        • #5
          @pingzaong
          Das ist aber sehr gefährlicher Stil. Informier dich mal über register_globals...

          Gruss

          tobi

          p.s. hängt das auch von deiner Conf ab, ob die Vars autom erstellt werden oder nur im Array $_POST vorhanden sind.
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            @ TobiaZ
            da ich nach einem Musterscript suche bzw. nach ein wenig Hilfe...
            konnte mir dein link nicht weiterhelfen.

            Mir ist bewusst das ich die Foren Suche zu verwenden habe,
            auch mich mit dem Problem zu beschäftigen habe, beides habe ich ohne erfolg getan.

            Wenn dir etwas konkret nicht passt - dann schreib es bitte doch - nur so kann ich den Fehler in Zukunft vermeiden - ein Link auf eine seite "wie Poste ich" macht wenig sinn.

            -------------------

            Um noch deutlicher zu werden:

            Ich möchte mehrere Datensätze einer mysql-Tabelle abändern. Nicht nur einen einzigen den ich in das Formular geladen habe.

            Eine schleife für die entsprechende Html- Tabellenzeile ist noch
            erforderlich.

            Beim absenden des Formulars sollen nun alle entsprechenden Zeilen geändert werden.

            Problem: Ich habe keine Ahnung wie ich der Sql Abfrage sagen soll
            das Sie die neuen Werte (die zeilenweise) mehrfach durchlaufen soll

            Kommentar


            • #7
              Original geschrieben von BöserMann
              @ TobiaZ
              da ich nach einem Musterscript suche bzw. nach ein wenig Hilfe...
              konnte mir dein link nicht weiterhelfen.
              Es geht um das Umbrechen des Codes in [php]-Tags, damit man nicht querscrollen muss.
              Wenn dir etwas konkret nicht passt - dann schreib es bitte doch - nur so kann ich den Fehler in Zukunft vermeiden - ein Link auf eine seite "wie Poste ich" macht wenig sinn.
              *seufz*
              Doch, genau das steht da auch beschrieben.
              Bitte Lesen, und nicht nur oberflächlich überfliegen und dann sagen "hilft mir nich' weiter.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                So, Quelltext umgebrochen.

                Sollte nun ohne zu scrollen lesbar sein.

                mea culpa

                Kommentar


                • #9
                  ich muss immer noch scrollen (wahrscheinlich wegen der langen input-felder in deinem formular).

                  aber ich habe nicht wirklich verstanden, wo das problem liegt. du kannst doch ein UPDATE schon durchführen - mach einfach mehrere hintereinander, dann hast du auch mehrere datensätze erneuert.

                  Kommentar


                  • #10
                    Verbesser gleich nochmal das Scroll verhalten...

                    Hier liegt das Problem... WIE mache ich der SQL Abfrage klar
                    das sie mehrfach hintereinander durchzulaufen hat?

                    Auf soetwas (der Link zeigt auf eine ASP Variante) möchte ich hinaus:
                    http://www.dmxzone.com/ShowDetail.asp?NewsId=1714

                    Ich bekomm das nicht hin.

                    Kommentar


                    • #11
                      WIE mache ich der SQL Abfrage klar das sie mehrfach hintereinander durchzulaufen hat?


                      die sql abfrage läuft nichts durch, sie wird lediglich ausgeführt.

                      ich glaube, dir entgeht noch eine wichtige sache - alle felder müssen sich innerhalb einer form befinden, die einen submit button besitzt.

                      die namen der elemente sollten arrays sein (so wie deine checkbox), damit du die werte auseinander halten kannst.

                      dann machst du ein update nach dem anderen in einer schleife und sprichst die durchnumerierten elemente der felder an.

                      Kommentar


                      • #12
                        Traue mich ja nicht mehr zu Fragen.. aber..

                        genau das ist der Punkt! Wie mach ich diese entsprechende Schleife denn ?

                        // ich bin Anfänger .. also ein Besipiel würde mir da schon sehr helfen.

                        Kommentar


                        • #13
                          PHP-Code:

                          $array 
                          = array(1,2,3,4,5,6,7,8,9);

                          //ich bin eine schleife:
                          while($wert pos($array)){
                            echo 
                          $wert."<br/>";
                            
                          next($array);
                          }
                          reset($array); 
                          so zum Beispiel

                          Kommentar


                          • #14
                            Toll!

                            DAS hat mich nun ans Ziel gebracht.

                            Du wirst zugeben das es für einen Anfänger nun etwas schwierig ist
                            dies gedanklich zu o.g. Quellcode zu denken.

                            Aber wenn doch nun die Feldnamen [] haben
                            wie benenne ich die ich denn in der SQL Abfrage?

                            Kann mir jemand helfen ? oder mir ein Forum empfehlen wo einem Anfänger geholfen wird?

                            Ansonsten hat das hier wenig Sinn.

                            Kommentar


                            • #15
                              ich würde foreach nehmen:
                              PHP-Code:
                              foreach ($array as $k)
                              {
                                 echo 
                              $k['id'];
                                 echo 
                              $k['art_nr'];
                                 echo 
                              $k['sonst_was'];

                              Kommentar

                              Lädt...
                              X