Thema: Verbindung aufnehmen, Datensätze ändern


Datensätze abfragen und ändern

MySQL

In einem PHP-Programm können die Datensätze mit der Anweisung update geändert werden.
Normalerweise muss die Bearbeitung eines Datensatzes (erzeugen, löschen oder ändern) mit Hilfe eines Benutzerrechtes erlaubt werden. Der Einfachheit halber soll es hier aber angenommen werden, dass jeder Benutzer Datensätze ändern kann. Das Formular und der Code werden hier unten zusammengefasst:

Datensätze ändern

<?php
  	/* Verbindung mit MyQSL aufnehmen */
	mysql_connect("localhost", "YourUsername", "YourPassword");
	$dblink =mysql_select_db("YourDB");
  if (isset($_POST["change"])) {
      $sqlstr = "update lab_tblpersonen set"
	     . " name = '" . $_POST["nn"] . "',"
	     . " vorname = '" . $_POST["vn"] . "',"
	     . " personalnummer = '" . $_POST["pn"] . "',"
	     . " gehalt = '" . $_POST["ge"] . "',"
	     . " zulage = '" . $_POST["zl"] . "',"
	     . " geburtstag = '" . $_POST["gt"] . "'"
	     . " where id = " . $_POST["oripn"];
	   
      $res = mysql_query($sqlstr) or die ("keine Verbindung mit der Datenbank ".mysql_error());
      $num = mysql_affected_rows();
      if ($num>0) {
         echo "<p><font color='#999999'>";
         echo "Der Datensatz wurde ge&auml;ndert.";
         echo "</font></p>";
      } else {
         echo "<p><font color='#993300'>";
	      echo "Der Datensatz wurde nicht ge&auml;ndert.";
	      echo "</font></p>";
      }
      mysql_free_result($res);
  }
  if (isset($_POST["auswahl"])) {
     $sqlstr = "select * from lab_tblpersonen where id = " . $_POST["auswahl"];
     $res = mysql_query($sqlstr);
     $dsatz = mysql_fetch_assoc($res); ?>
 
     <form  class="mb-2" action="c56.php" method="post">
     <div class="form-group">
     			<label class="control-label">Id</label>
           <input type="text" name="id" value="<?php echo $dsatz["id"]; ?>"/>
           </div>
     <div class="form-group">
     			<label class="control-label">Nachname</label>
           <input type="text" name="nn" value="<?php echo $dsatz["name"]; ?>"/>
           </div>
     <div class="form-group">
     			<label class="control-label">Vorname</label>
           <input type="text" name="vn" value="<?php echo $dsatz["vorname"]; ?>"/>
           </div>
     <div class="form-group">
     			<label class="control-label">Personalnummer</label>
           <input type="text" name="pn" value="<?php echo $dsatz["personalnummer"]; ?>"/>
           </div>
     <div class="form-group">
     			<label class="control-label">Gehalt</label>
           <input type="text" name="ge" value="<?php echo $dsatz["gehalt"]; ?>"/>
           </div>
     <div class="form-group">
     			<label class="control-label">Zulage</label>
           <input type="text" name="zl" value="<?php echo $dsatz["zulage"]; ?>"/>
           </div>
     <div class="form-group">
     			<label class="control-label">Geburtstag</label>
           <input type="text" name="gt" value="<?php echo date('d.m.Y', strtotime($dsatz["geburtstag"])); ?>"/>
           </div>    
     <div class="form-group">
           <input type="hidden" name="oripn" value="<?php echo $_POST["auswahl"]; ?>"/>
           </div>

     <div class="form-group">
           <button type="submit" name="change" class="btn btn-primary" >
           <span class="fa fa-send"></span> Change</button>           
           </div>  
     </form><hr />
<?php     mysql_free_result($res);
   } ?>
   <p align="center"><b>W&auml;hlen Sie aus, welcher Datensatz ge&auml;ndert werden soll:</b>
   <form  action="c56.php" method="post">
<?php   $sqlstr = "select * from lab_tblpersonen";
   $res = mysql_query($sqlstr) or die ("keine Verbindung mit der Datenbank ".mysql_error());
   $num = mysql_num_rows($res);  ?>
	<table class="table striped">
	<thead>
	<tr><th>Lfd. Nr.</th><th>Name</th>
	<th>Vorname</th><th>Personalnummer</th>
	<th>Gehalt</th><th>Zulage</th><th>Geburtstag</th></tr>
	</thead><tbody>
 <?php	while ($dsatz = mysql_fetch_assoc($res)) { ?>
		<tr>
      <td><?php echo $dsatz["id"]; ?></td>
		<td><?php echo $dsatz["name"]; ?></td>
		<td><?php echo $dsatz["vorname"]; ?></td>
		<td><?php echo$dsatz["personalnummer"]; ?></td>
		<td><?php echo number_format($dsatz["gehalt"],2,",","."); ?></td>
		<td><?php echo number_format($dsatz["zulage"],2,",","."); ?></td>
		<td><?php echo $dsatz["geburtstag"]; ?></td>
		<td><input type="checkbox" name="auswahl" value="<?php echo $dsatz["id"]; ?>" /></td>
		</tr>      
<?php	} ?>
	</tbody></table>
	<label class="control-label"></label><button type="submit" class="btn btn-primary" >
           <span class="fa fa-send"></span> Data view</button>

	</form>	
<?php   
	mysql_free_result($res);
 
?>


Datensätze ändern

Wählen Sie aus, welcher Datensatz geändert werden soll:

Lfd. Nr.Name VornamePersonalnummer GehaltZulageGeburtstag
7 Bandegani Genevleve GB27777272 3.500,00 300,00 1964-12-12
6 Bandegani Genevieve GB2777272 3.500,00 300,00 1964-12-12
8 0,00 0,00 0000-00-00
9 Kassel Sandra SK123456 3.000,00 255,00 2012-02-20
10 0,00 0,00 0000-00-00
11 0,00 0,00 0000-00-00