Ankündigung

Einklappen
Keine Ankündigung bisher.

meherer Zeilen updaten

Einklappen

Neue Werbung 2019

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

  • meherer Zeilen updaten

    Wie schon viele vor mir habe auch ich das Problem das ich nicht mehrere Zeilen gleichzeitig ändern kann. Die unzähligen Seiten im Netz konnten mir bisher auch nicht weiterhelfen.

    Mein Problem :
    Ich kann nur die letzte Zeile ändern!!


    Hier mal mein Code:

    updateallee.php
    PHP-Code:
    <html>
     <head>
      <title> Tabelle-Updaten </title>
      <meta name="description" content="Seiteninhalt (Beschreibung)">
    <?php include("kopf.inc.php"); ?>
     </head>

    <body>

    <?php include("navi.inc.php"); ?>

    <div id="inhalt">

       <h1 id="titelzeile"> Tabelle Updaten</h1>

    </div>

    <?php
        
    // Verbindung zur Datenbank herstellen
        
    require_once "dbconnect.php";
        

        
    // übergebene Daten zurück in die Datenbank schreiben
        
    $sql="SELECT * FROM tagung";

        
    // Anfrage ausführen
       
    $result=sqlQuery($sql);
       
        
    // Tabelle in HTML darstellen
        
    echo "<form method='POST' action='update1.php'>";
        
        
        
        

        
    // Tabelle in HTML darstellen
        
    echo "<table border=\"2\">\n";
        while (
    $row=mysql_fetch_row($result))
        {
            echo 
    "<tr>";        
            echo 
    "<td> <input type='text' name='id' readonly value = '$row[0]' </td>";
            echo 
    "<td> <input type='text' name='kennung' value = '$row[1]' </td>";
            echo 
    "<td> <input type='text' name='anzahl' value = '$row[2]' </td>";
            echo 
    "</tr>\n";
        }
        echo 
    "</table>\n";
        echo 
    "<td> <input type=submit name=submit value='bearbeiten'></td>";
        echo 
    "</form>";
    ?>


    </body>
    </html>
    update1.php
    PHP-Code:
    <!DOCTYPE HTML>
    <html>
     <head>
      <title> Update </title>
      <meta name="description" content="Seiteninhalt (Beschreibung)">
      <meta http-equiv="refresh" content="2; URL=http://localhost/hotspot/db/updateallee.php">
      
    <?php include("kopf.inc.php"); ?>
     </head>
    <body>


    <?php
        
    // Verbindung zur Datenbank herstellen
        
    require_once "dbconnect.php";
        
        
            
    $id=$_POST['id'];
            
    $kennung=$_POST['kennung'];
            
    $anzahl=$_POST['anzahl'];
        
        
        
        
    // SQL-Kommando: Ändern von Einträgen
           
    $sql"UPDATE tagung SET kennung='$_POST[kennung]', anzahl='$_POST[anzahl]' WHERE id = '$id]'";
                 

          
    $result=sqlQuery($sql);
         
        
        
    ?>
        <div id="inhalt">

       <h1 id="titelzeile"> Titelzeile </h1>

       Sie werden weiter geleitet

    </div>
        </body> 
    </html>

    Alternativ kann ich mir auch vorstellen hinter jeder Zeile ein Button zu machen der dann die jeweilige einzelne Zeile ändert. aber auch das hat nicht funktioniert.

    Danke

  • #2
    1) mehrere Zeilen Updaten geht nur, wenn du in allen das gleiche änderst - das Update statement ist doch eindeutig

    Code:
    UPDATE tabellenname SET
    spalte1=Wert1,
    spalte2=Wert2,
    spalteN=WertN
    WHERE 
     Bedingung
    also das ändert ALLE Datensätze, auf die deine Bedingung zutrifft - allerdings macht es bei allen die gleiche Ersetzung .....

    da man dies in der Regel nicht möchte, wirst du um eine Auswahlmöglichkeit für den zu bearbeitenden / upzudatenden Datensatz nicht herumkommen

    2) das du nur den letzten ändern kannst, liegt wohl daran, dass sich deine Formular-Elemente mit gleichem Namen, so dass letztlich im Post-Array nur die letzten Formular-Elemente enthalten sind

    Kommentar


    • #3
      PHP-Code:
      $a 'kennung'$b 'anzahl'$c 'id';
      echo 
      "UPDATE tagung SET kennung='$a', anzahl='b' WHERE id = '$c]'"
      Und was fällt dir da auf?

      Kommentar


      • #4
        Mir fallen gleich 2 Sachen auf.
        1. Schau dir mal den Query genauer an
        2. SQL Injection Gefahr

        Kommentar

        Lädt...
        X