Update Problem !

merti

Mitglied
Hi an alle,

hab folgendes Problem, und zwar hab so ein Userverwaltungs System Programmiert.
User werden in Datenbank gespeichert, ausgegeben, gelöscht, aber nur wenn ich einen user UPDATEN will, dann wird nur der letzter Datensatz geändert.

Hier mal mein Source-Code:

PHP:
<?
  include "conn.php";

  $result = mysql_query("SELECT * FROM user");
  $num = mysql_num_rows($result);

  if (isset($_POST['action']) && ($_POST['action'] = "Ändern")) {

  $update = 'UPDATE user Set ID = "'.$_POST['ID'].'", Firma = "'.$_POST['Firma'].'" WHERE ID = "'.$_POST['ID'].'"';
  $query = mysql_query($update);

  }

    echo '<table border=1 width=10%>';

  while ($row = mysql_fetch_array($result, MYSQL_ASSOC))

  {
  echo '<form action=update.php method=post>
            <tr>
              <td>
                <input type=hidden name=ID value='.$row['ID'].'> '.$row['ID'].'
              </td>
              <td>
                <input type=text name=Firma value='.$row['Firma'].'>
              </td>
              <td>
                <input type=submit name=action value=Ändern>
              </td>
            </tr>';
  }
?>
</table>
</form>

wenn Ihr mir helfen könnt, wäre das toll ..... :-)

Bedanke mich im Vorraus,

Merti
 

Anhänge

  • bug.jpg
    bug.jpg
    17,4 KB · Aufrufe: 45
Hi,
was meinst du mit letzter Datensatz? Sowie ich das sehe fürst du ja nur ein Update aus, dabei willst du dein ID Feld ändern, kann es sein dass das dein Primary Key ist?
 
die Tabellen Struktur sieht mal so aus:

ID --> Firma

die ID darf der User nicht Änder ist Auto Increment und Primary_Key.
aber wenn er (siehe Anhang) 2 Datensätze hat -- kann er nur den 2. ändern, wenn er 3 Datensätze hat kann er nur den 3. ändern usw. Wenn ich den 1. Datensatz Updaten will und auf Ändern drück, dann passiert gar nichts, also wird nicht geändert.

ich hoffe, ihr habt das verstanden, was ich mein. :-)
 
Ja klar... guck mal, du haust ja in der while-Schleife deine DB-Einträge in die Textboxen? So, jetzt willst du nach dem Post per $_POST["Firma"] drauf zu greifen. Jetzt heißen aber alle deine TB's Firma, dann nimmt er halt nur die letzte. Du musst das ganze iterativ machen... d.h. erst mal in deiner while Schleife die TB's nummerien firma_1, firma_2.

Dann im DB Teil ebenfalls eine Schleife um dein Update stricken, die dann entsprechen $_POST["firma_1"] aufruft und die Updates ausführt.

Hoffe dir hilft das weiter.
 
wenn ich dich darum bitten darf mein Code umzuschreiben, ist das dann zuviel verlangt ? :-).
wenn nicht, dann bedanke ich mich mal bei dir . . .

GREEZ.

Merti
 
Den </form> Tag würde ich mit in die While Schleife nehmen, schließlich sollen auch
alle generierten Formulare geschlossen werden. So wird nur das letzte geschlossen,
was auch erklärt warum nur das Letzte geändert wird. :)
 
Zurück