PHP --> Update --> MySQL

Hallo (mal wieder),

ich versuche (mittlerweile) echt verzweifelt Daten auf MySQL per PHP zu ändern.

Ich „ziehe“ zuerst die Daten über eine Select-Box und lass mir die Daten in Textboxen anzeigen.

$dbanfrage = "SELECT \* from $tabelle";
$result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);
$options = "";
 ?\> <?php while($row=mysql_fetch_array($result,MYSQL_ASSOC)){<br /> ?\><?php echo $row['Id']." - ".$row['Nachname'].", ".$row['Vorname'];?>

Hier die Ausgabe in der Textbox -->

Dann will ich dort ändern und die Daten „hochschicken“
Leider tut sich garnuescht - noch nicht mal ne Fehlermeldung. :frowning:((

<?php error_reporting(E_ALL | E_NOTICE);<br /> ini\_set('display\_errors','On');

 $host = "localhost";
 $user = "user";
 $password = "password";
 $dbname = "dbname";
 $tabelle ="tabelle";
 $dbverbindung = mysql\_connect ($host, $user, $password);

 if(isset($\_POST['aendern'])){
 $sql=mysql\_query("UPDATE $tabelle SET Nachname='$Array[Nachname]' WHERE id='".$\_POST['to\_change']"'); 
 $sql = mysql\_query($sql);
}
?\>

Frage - ist es überhaupt grundsätzlich möglich?

Wenn ja, jemand nen klitzkleinen Tipp für mich ?

Gruß Rolf

(ich versuchs grad mal nur mit Nachname, wenn das klappt kommen die anderen Felder auch dran :smile:)))

Hallo Rolf,

Ich „ziehe“ zuerst die Daten über eine Select-Box und lass mir
die Daten in Textboxen anzeigen.

$dbanfrage = „SELECT * from $tabelle“;
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
$options = „“;
?> <?php : while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
?><?php echo $row[‚Id‘]." -
".$row[‚Nachname‘].", ".$row[‚Vorname‘];?>

oweh, mach doch sowas nicht…
das ist total unübersichtlich!
Verwende innerhalb von php lieber
echo „Auszugebendertext“; statt dass Du immer mit und ?> arbeitest.
Du musst dann nur die Anführungszeichen „markieren“ -> "

Hier die Ausgabe in der Textbox -->

wofür ist das ein Array? *grübel* Und warum verwendest Du gross/kleinschreibung…? Sowas ist immer mal ein leichter Fehlerproduzent…

Dann will ich dort ändern und die Daten „hochschicken“
Leider tut sich garnuescht - noch nicht mal ne Fehlermeldung.

-(((

führ mal das query so aus:
mysql_query($sql) or die(„Fehler in sql:
$sql“);
Damit siehst Du dann sofort, ob es an der Syntax der sql liegt, oder ob einfach nur die Daten falsch angekommen sind…

if(isset($_POST[‚aendern‘])){

hier könnte man auch eine Test-Ausgabe machen, ob diese Variable übergeben worden ist…

Frage - ist es überhaupt grundsätzlich möglich?

ja

Wenn ja, jemand nen klitzkleinen Tipp für mich ?

im Moment fällt mir kein Fehler auf -> debuggen -> Fehler eingrenzen…
und evtl Error-Level hochsetzen (E_ALL)

Grüße
Munich

Jo,

danke, vergess ich doch immer wieder.

Er bringt mir zwar keine Fehlermeldung ansich aber er scheint n Verbindungsproblem zu haben.

Das muss ich heute abend mach überprüfen.

Danke derweil.

Gruß Rolf

Moin,

sodala - Fehlermeldung die er mir nun bringt ist diese -->

Unknown column ‚asdfsdfsdaffsadf‘ in 'field list’

Die „Bennenung“ des Feldes stimmt aber.

$sql=mysql\_query("UPDATE $tabelle SET Nachname=$Array[Nachname] WHERE id=".$\_POST['to\_change'])or die( mysql\_error() ); 
 $sql = mysql\_query($sql)or die( mysql\_error() );

Nochmal ne Verständis-Frage - um die Daten upzudaten muss ich die Textbox bzw. den Inhalt als Array ausgeben?

Gruß Rolf

sodala - Fehlermeldung die er mir nun bringt ist diese -->
Unknown column ‚asdfsdfsdaffsadf‘ in 'field
list’

ich nehme mal an, dass Du das als Wert für den Nachnamen eingetragen hast?

Die „Bennenung“ des Feldes stimmt aber.

$sql=mysql_query(„UPDATE $tabelle SET
Nachname=$Array[Nachname] WHERE id=“.$_POST[‚to_change‘])or
die( mysql_error() );

  1. setze mal das $Array[Nachname] in hochkommas. Ebenso für $_POST[‚to_change‘].
  2. solltest Du Dir nicht mysql_error ausgeben lassen, sondern den fehlerhaften sql-String. So wie ich es Dir in meinem Beispiel skizziert hatte…

Nochmal ne Verständis-Frage - um die Daten upzudaten muss ich
die Textbox bzw. den Inhalt als Array ausgeben?

nein, warum sollte das so sein?

1 Like

Sehr wohl.!!!

Es waren die Hochkommatas! :smile:)

Subba! Danke!

Gruß Rolf