Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Daten aus DB auslesen, in Formular ausgeben und da ändern können

Hallo liebe Gemeinde
Möchte foldende Aufgabe, wie im Betreff geschrieben, lösen

Mit diesem Formular lese ich alle Benutzer aus, welche in der Datenbank eingetragen sind. Nun möchte ich einen Bestimmten auswählen. Dies funktioniert soweit. Sobal ich nun auf Benutzer ändern gehe, soll es alle Angaben des Benutzers in ein Fomular ausgeben, so dass ich alle seine Angaben, natürlich bis auf die ID ändern kann. Wie kann ich dies mit PHP lösen?

Vielen dank für eure Hilfe

Gruss, Stif-Meister

<form action="edit_user.php" method="get">
 <select name="benutzer">
 <?php
 
 error_reporting
(0);
  
  
$connect mysql_connect("localhost""root""");
  
$db mysql_select_db("tippspiel");
  
$id $_GET["benutzerID"];
  
$res mysql_query("SELECT * FROM benutzer");
  while(
$row mysql_fetch_array($res))
   {
    echo 
"<option value=";
echo $row["benutzerID"];
 echo ">";
echo $row["name"];
echo "</option>";
   }
 
 
?>

 </select>
 <input type="submit" value="Benutzer ändern"/>
 <input type="hidden" value="<?php echo $id ?>" name="id" />
</form>

Antworten zu Daten aus DB auslesen, in Formular ausgeben und da ändern können:

Noch mal aber ein bissal langsamer.

Was willst du?
Das Formular zum Auswählen des Benutzers das du gepostet hast müsste ja funktionieren oder.

MFG BWA

Hallo
Ja, das funktioniert auch!
Nun habe ich bei diesem Formular, welches ich gepostet habe, ein Button namens "Benutzer ändern"
So, jetzt kann ich ein Benutzer aus meiner Liste auswählen und auf den Button klicken. Somit wird das ganze an das file edit_user.php weitergeleitet, welches ich aber noch nicht habe.
Nun zur eigenltichen Frage:
In diesem edit_user.php will ich nun alle Angaben, des soeben ausgewählten User in einem Formular haben, so dass ich die Angaben editieren/ändern kann. Danach soll unten wieder ein Button "Sichern" oder sowas sein. Mit dem Klicken auf diesen Button sollen die neuen Angaben, welche ich eingeben kann, die alten überschreiben.
Nun, wie funktioniert das, dass es mir die Daten des ausgewählten User in mein Formular schreibt/ausgibt?
Änder, bzw. überschreiben der vorhandenen Datensätze würde ich wieder hinkriegen...
Danke und Gruss

Welche werte willst du alle Ändern??
Wie heissen die Spalten?

MFG BWA

Vielleicht noch die Idee dahinter, es ist ein Formular für den Administrator, um Benutzern der Loginname, die E-Mail Adresse oder das Passwort zu ändern!
Die Datenbank heisst tippspiel, die Tabelle benutzer und einzelne Spalten sind, benutzerID, name, vorname, email, loginname und passwort.

<?php
 
  $connect 
mysql_connect("localhost""root""");
  $db mysql_select_db("tippspiel");
  $id $_GET["benutzer"];

  if(isset($_POST[&#39;sichern&#39;]))
  {
   $query "update benutzer set name = &#39;"$_POST[&#39;name&#39;] ."&#39;, vorname = &#39;". $_POST[&#39;vorname&#39;]."&#39;, email = &#39;". $_POST[&#39;email&#39;] ."&#39;, loginname = &#39;". $_POST[&#39;loginname&#39;]."&#39;, passwort = &#39;". $_POST[&#39;passwort&#39;] ."&#39; where benutzerID = ". $id;
   mysql_query($query);
  }

  $res mysql_query("SELECT * FROM benutzer where benutzerID = &#39;$id&#39;");
  $row mysql_fetch_array($res)
   
 ?>

<form action="<?php print $_SERVER[&#39;PHP_SELF&#39;];?>" method="POST">
<input type="hidden" value="<?php print $row[&#39;benutzerID&#39;]; ?>" name="benutzerID" >
<input type="text" value="<?php print $row[&#39;name&#39;]; ?>" name="name" >
<input type="text" value="<?php print $row[&#39;vorname&#39;];?>" name="vorname" >
<input type="text" value="<?php print $row[&#39;email&#39;];?>" name="email" >
<input type="text" value="<?php print $row[&#39;loginname&#39;];?>" name="loginname" >
<input type="text" value="<?php print $row[&#39;passwort&#39;];?>" name="passwort" >
<input type="submit" value="Sichern" name="sichern">
</form>

Probiers mal aus ich hab den Code ned getestet also können fehler drinnen sein.

MFG BwA

PS: den rest herum musst du noch selber schreiben

Hallo
Habe mich nun aus Darstellungstechnischen Gründen dafür entschieden, die Anfrage an das selbe File zu senden.
Allerdings funktioniert das noch nicht richtig, besser gesagt überhaupt nicht.

Hier der gesamte Code:

Zitat
<form action="<?php echo $PHP_SELF ?>" method="get">
 <select name="benutzer">
 <?php
 
 error_reporting(0);
 
  $connect = mysql_connect("localhost", "root", "");
  $db = mysql_select_db("tippspiel");
  $id = $_GET["benutzerID"];
  $res = mysql_query("SELECT * FROM benutzer");
  while($row = mysql_fetch_array($res))
   {
    echo "<option value=";
   echo $row["benutzerID"];
    echo ">";
   echo $row["name"];
   echo "</option>";
   }
 
 ?>
 </select>
 <input type="submit" value="Benutzer ändern"/>
 <input type="hidden" value="<?php echo $id ?>" name="id" />
</form>

<hr>

<?php
 
  $connect = mysql_connect("localhost", "root", "");
  $db = mysql_select_db("tippspiel");
  $id = $_POST["benutzerID"];

  if(isset($_POST['sichern']))
  {
   $abfrage = "update benutzer set name = '". $_POST['name']."', vorname = '". $_POST['vorname']."', email = '". $_POST['email']."', loginname = '". $_POST['loginname']."', passwort = '". $_POST['passwort']."' where benutzerID = ". $id;
   mysql_query($abfrage);
  }

  $res = mysql_query("SELECT * FROM benutzer WHERE benutzerID = '$id'");
  $row = mysql_fetch_array($res)
   
 ?>
<form action="<?php print $_SERVER['PHP_SELF'];?>" method="POST">
<input type="hidden" value="<?php print $row['benutzerID']; ?>" name="benutzerID" ><br>
<input type="text" value="<?php print $row['name']; ?>" name="name" ><br>
<input type="text" value="<?php print $row['vorname'];?>" name="vorname" ><br>
<input type="text" value="<?php print $row['email'];?>" name="email" ><br>
<input type="text" value="<?php print $row['loginname'];?>" name="loginname" ><br>
<input type="text" value="<?php print $row['passwort'];?>" name="passwort" ><br>
<input type="submit" value="Sichern" name="sichern">
</form>

Nun ja, was geschieht, wenn ich den Vorgang durchmache...
Es liest mir nach wie vor alle Benutzer, die vorhanden sind in der DB aus, und gibt die oben im select-Formular aus. Allerdings wenn ich da denn auf Benutzer ändern klicke, kommen dessen Angaben nicht wie gewollt unten im 2. Formular, sondern ich werde automatisch wieder auf die Login-Site zurück geworfen. Nun, dies  geschieht, da ich ein Filesystem-Management in PHP geschrieben habe... Aber ansonsten funktioniert dieses Filesystem wunderbar.

Danke für deine Hilfe

<?php
 
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
?>

<html>
<body>
<form action="<?php echo $PHP_SELF ?>" method="Post">
 <select name="benutzer">
 <?php
 
 error_reporting
(0);
  
  
$connect mysql_connect("localhost""root""");
  
$db mysql_select_db("tippspiel");
  
$id $_GET["benutzerID"];
  
$res mysql_query("SELECT * FROM benutzer");
  while(
$row mysql_fetch_array($res))
   {
    echo 
"<option value=";
   echo 
$row["benutzerID"];
    echo 
">";
   echo 
$row["name"];
   echo 
"</option>";
   }
 
 
?>

 </select>
 <input type="submit" value="Benutzer ändern"/>
 <input type="hidden" value="<?php echo $id ?>" name="id" />
</form>
<hr>
<?php
 
if(isset($_POST[&#39;benutzer&#39;]))
  
{
  
$id $_POST["benutzer"];

  if(isset(
$_POST[&#39;sichern&#39;]))
  
{
   
$abfrage "update benutzer set name = &#39;"$_POST[&#39;name&#39;]."&#39;, vorname = &#39;". $_POST[&#39;vorname&#39;]."&#39;, email = &#39;". $_POST[&#39;email&#39;]."&#39;, loginname = &#39;". $_POST[&#39;loginname&#39;]."&#39;, passwort = &#39;". $_POST[&#39;passwort&#39;]."&#39; where benutzerID = ". $id;
   
mysql_query($abfrage);
  }

  
$res mysql_query("SELECT * FROM benutzer WHERE benutzerID = &#39;$id&#39;");
  
$row mysql_fetch_array($res)
   
 
?>

<form action="<?php print $_SERVER[&#39;PHP_SELF&#39;];?>" method="POST">
<input type="hidden" value="<?php print $row[&#39;benutzerID&#39;]; ?>" name="benutzer" ><br>
<input type="text" value="<?php print $row[&#39;name&#39;]; ?>" name="name" ><br>
<input type="text" value="<?php print $row[&#39;vorname&#39;];?>" name="vorname" ><br>
<input type="text" value="<?php print $row[&#39;email&#39;];?>" name="email" ><br>
<input type="text" value="<?php print $row[&#39;loginname&#39;];?>" name="loginname" ><br>
<input type="text" value="<?php print $row[&#39;passwort&#39;];?>" name="passwort" ><br>
<input type="submit" value="Sichern" name="sichern">
</form>
  <?php
}
?>

</body>
</html>

Die Header die er sendet sind nur dazu da dass er die Daten immer neu vom Server hohlt und keine veralteten daten anzeigt.

Sonst habe ich nur den namen einer post variable geändert.

Bei mir läuft der Code

MFG BWA

Hallo
So, nun läuft er auch bei mir  :)
Wie bereits vermutet, es lag an dem Problem mit dem File-Script.
Nun konnte ich diese letzte Hürde aber auch noch überwinden...
Vielen Dank nochmals für deine Hilfe!

Gruss Stif-Meister


« Reload Sperre per IP und Datum (PHP)Internet Anbieter »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Benutzerkonto
Windows bietet die Möglichkeit Benutzerkonten, kurz Nutzerkonten, anzulegen. Auf diese Weise kann ein Rechner von mehreren Nutzern verwendet werden.   Bei jed...

Benutzerkontensteuerung
In modernen Windows Betriebssystemen besteht die Möglichkeit, verschiedene Benutzerkonten anzulegen - wie auch unter Linux und macOS. Diese Funktion ermöglicht ...

Datenbank
Eine Datenbank (DBS), im englischen database, ist eine strukturierte Datensammlung und fungiert wie ein "digitales Archiv". Datenbanken dienen der effizienten Aufbewahrun...