Update von Datensätzen

AndreG

Erfahrenes Mitglied
Hallo zusammen,

Ich bin momentan an einer kleinen Hp dran. Nur hab ich das Problem, das ich gerne die Personaldaten aus einer db auslesen will und diese danach geändert speichern will.

PHP:
<?PHP 
			include ("db.php");
			$query = "SELECT * FROM Personal WHERE id='1' ";
			$result = mysql_query($query);
			while ($line = mysql_fetch_array($result)) {
			$Name="$line[name]";
			$Position="$line[position]";
			$Beruf="$line[beruf]";
			$Email="$line[email]";
			$ID="$line[id]";
			}
			mysql_free_result($result);
			mysql_close();
			?>

Dann werden die Variablen in einer Tabelle ausgegeben.
Und anscließen will ich sie per Button wieder in der db überschreiben.

PHP:
<input type="submit" name="Submit" value="Speichern" onClick="
                      <?php
                      include ("db.php");
	              $query = "UPDATE Personal Set name='$Name' WHERE id=1";
	              $result = mysql_query($query);
	              echo mysql_error();
	              mysql_close();
                       ?>
">

Nur es passiert nichts in der db voran liegt das

Mfg Andre
 
Zuletzt bearbeitet:
Wenn du deine Seite aufmachst, dann guck doch mal in den Quelltext und achte besonders auf den Part, der im "onClick"-Attribut deines Buttons steht. ;)

Lange Rede, kurzer Sinn: Du kannst auf einer HTML-Seite nicht PHP-Code "on demand" ausführen, der wird doch nur einmal beim Aufruf der Seite geparsed und das wars dann.
 
Jo das stimmt hab da etwas gepennt PHP is ja Serverseitig :-(

Hab jetzt nen anderen Weg gefunden es zu bewerkstelligen. Poste es einfach mal für die anderen.

PHP:
<?PHP 
			include ("db.php");
			$query = "SELECT * FROM Personal WHERE id='1' ";
			$result = mysql_query($query);
			while ($line = mysql_fetch_array($result)) {
			$Name="$line[name]";
			$Position="$line[position]";
			$Beruf="$line[beruf]";
			$Email="$line[email]";
			}
			mysql_free_result($result);
			mysql_close();
			?>
Die Datei Update.php
PHP:
<?php
	include ("db.php");
	$NAME = $_POST["Name"];
	$BERUF = $_POST["Beruf"];
	$POSITION = $_POST["Position"];
	$MAIL = $_POST["Email"];
	$query = "UPDATE Personal Set name='$NAME' , position='$POSITION' ,beruf='$BERUF' ,email='$MAIL' WHERE id=1";
	$result = mysql_query($query);
	echo mysql_error();
	mysql_close();
?>

Diese ist natürlich in 2facher Ausführung da (natürlich leicht geändert btw der Variablen).

Jedoch frage ich mich jetzt, wie ich auf die Seite, von der ich das script aufgerufen habe zurück komme.
 
AndreG hat gesagt.:
Jedoch frage ich mich jetzt, wie ich auf die Seite, von der ich das script aufgerufen habe zurück komme.

PHP:
header("location: http://".$_SERVER['SERVER_NAME']."/pfad/zu/deiner/datei.php");

Nochmal zum Verständniss:

Du möchtest Daten aus einer Datenbank holen, diese in einem Formular anzeigen lassen, ändern und dann nach einem Button Klick zurück in die Datenbank schreiben?
 
Zuletzt bearbeitet:
Genau so war es gemeint ist jedoch schon erledigt. Wie oben gepostet funktioniert es, es ist zwar prog technisch nicht so schön nur leider kann ich nur wenig php und mehr java ;).

Werd es gleich mal testen mit der weiterleitung.

Thx erstmal
 
Jedoch frage ich mich jetzt, wie ich auf die Seite, von der ich das script aufgerufen habe zurück komme.
Falls das HTTP-Referrer-Feld einen verwertbaren Wert enthält, könntest du diesen nutzen:
PHP:
<?php

	…

	if( isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) ) {
		header('Location: '.$_SERVER['HTTP_REFERER']);
	} else {
		header('Location: http://'.$_SERVER['SERVER_NAME'].'/Pfad-zur-Ressource');
	}

	…

?>
 
Ich würde da etwas anders rangehen. Zuerst den Datensatz holen mit
PHP:
SELECT... FROM... WHERE...
   // (sql)
Dann die entsprechenden Daten in einem array speichern
PHP:
$row = FetchArray()


und imV
alue des Formulars ausgeben

HTML:
<input name="personalnummer"
  value="<?php echo $row['personalnummer'];?>" />

Dann kannst du die daten ja ändern und dann Updaten

PHP:
if (isset($DeinButtonName)) {
 	 ("UPDATE... SET personalnummer = '" .$_REQUEST['personalnummer']. "' WHERE id ='". $row['id'] ."'");
  }

Das soll nur eine anregung sein... ;)
 
Danke ihr zwei.

Hab mich aber für die Methode mit dem header entschieden. Da ich nur auf die vorherige Seite zurück will reicht das.

Die andere Variante sieht ganz intressant aus, werd ich mal testen was besser ist.

Thx

P.s. Ich speichere die Daten doch schon in einem Array.

P.s.2 Ich hab mich mal an deiner Lösung versucht, nur kriege ich sie nicht zum laufen, da ich nicht genau weiß wie du das mit dem array meinst.
 
Zuletzt bearbeitet:
So das mit dem array hat sich erledigt habs geschaft.

Nur irgendwie komm ich nicht drauf wo ich das lassen soll.

PHP:
if (isset($DeinButtonName)) {
     ("UPDATE... SET personalnummer = '" .$_REQUEST['personalnummer']. "' WHERE id ='". $row['id'] ."'");
  }

edit: funktioniert alles funderbar danke für die Hilf und sorry wegen dem Doppelpost :mad:
 
Zuletzt bearbeitet:
Zurück