Update-Syntax wird falsch ausgeführt

jagr68

Grünschnabel
Hallo zusammen,

habe folgendes Problem:
Die geänderten Formulardaten sollen per UPDATE Anweisung in meine SQL Tabelle übernommen werden. Zwar wird der SQL Befehl laut "echo" richtig umgesetzt, die Variablen sind auch richtig gesetzt, aber anstatt des Update wird der Inhalt "gelöscht".
Kopiere ich mir die per "echo" ausgebenen SQL Syntax in my phpmyadmin SQL Fenster klappt alles wunderbar!

Schon mal vielen Dank an alle die Antworten
Grüsse

PHP:
<?


mysql_pconnect("xxx","xxx","xxx")
or die("Keine Verbindung zum SQL server");

mysql_select_db("xxx")
or die("Kann Datenbank nicht auswaehlen: ".
mysql_error() . ") ");


// Variablen aus mitglieder_detail.php übernehmen
$pVorname=$_POST['Vorname'];
$pNachname=$_POST['Nachname'];
$pStraße=$_POST['Straße'];
$pPLZ=$_POST['PLZ'];
$pOrt=$_POST['Ort'];
$pMobil=$_POST['Mobil'];
$pTel=$_POST['Tel'];
$pEmail=$_POST['Email'];
$pGeburtsdatum=$_POST['Geburtsdatum'];
$pZahlungsart=$_POST['Zahlungsart'];
$pKindJugend=$_POST['KindJugend'];

// Änderung per SQL durchführen
echo $pTel;
$update='UPDATE Mitglieder SET Tel= "'.$pTel.'" WHERE ID = '.$ID.';';



mysql_query($update)
or die("<br>Fehler mit: ".$update);
echo "SQL".$update; 
?>
 
Wie gelöscht? Das Feld, in das der neue Inhalt soll, ist dann leer, oder wie?
Sicher, dass $pTel einen Wert hat?
Probier mal noch folgendes
PHP:
$update='UPDATE Mitglieder SET Tel= "'.mysql_real_escape_string($pTel).'" WHERE ID = '.$ID.';';
 
Hab ich mich auch schon gefragt. Aber er hat ja geschrieben, dass der Inhalt gelöscht wird. Daher bin ich erstmal davon ausgegangen, dass er den Inhalt der Spalte meint, die geupdated werden soll. Dementsprechend müsste es die Variable also geben. :)
 
Hallo zusammen,

Danke schon mal für die Antworten!!
Es ist genau so wie Ihr vermutet habt. Der richtige Datensatz mit dem richtigen Feld wird angesprochen, jedoch wird anstatt den neuen Wert zu setzen, entweder den bereits bestehenden Inhalt gelöschen oder garnichts rein geschreiben!

Wenn ich die SQL Syntax per ECHO ausgebe und das ganze per phpadmin direkt ausführe klappt das ganze wunderbar -> SQL yntax sollte passen.

Das Feld $ID wird mir beim erstmaligen ändern übergeben!!
 
Probier mal Folgendes:
PHP:
<?php

	ini_set('display_errors', true);
	error_reporting(E_ALL);


	mysql_pconnect('xxx', 'xxx', 'xxx')
		or die('Verbindungsaufbau zum MySQL-Server schlug fehl!');
	mysql_select_db('xxx')
		or die('Auswahl der Datenbank schlug fehl!');

	$query = '
		UPDATE
		        `Mitglieder`
		  SET
		        `Tel` = "'.mysql_real_escape_string($_POST['Tel']).'"
		  WHERE
		        `ID` = '.mysql_real_escape_string($ID).'
		';
	mysql_query($query)
		or die(mysql_error());


	echo 'Datenbankabfrage war erfolgreich:<pre>'.htmlspecialchars($query).'</pre>'; 

?>
 
Hallo Gumbo,

leider gleiches Ergebnis - anbei noch die Anzeige:

Warning: ini_set() has been disabled for security reasons in /usr/export/www/vhosts/funnetwork/hosting/faddermacker/mitglieder_aenderung.php on line 33
Datenbankabfrage war erfolgreich: UPDATE
`Mitglieder`
SET
`Tel` = "1"
WHERE
`ID` = 52


Hat jemand vielleicht ein Script welches ich übernehmen kann? Ich möchte doch nur die Mitglieder online verwalten können :-(


Danke
 
Neben der Fehlermeldung, dass die ini_set()-Funktion aus Sicherheitsgründen deaktiviert ist, wird nur die Meldung ausgegeben, dass die Abfrage erfolgreich war. Wurde denn tatsächlich nichts geändert?
 
Hallo,

habe es soeben nochmal geprüft - habe das Feld vorher mit dem "test" belegt.
Dann versucht per script den Wert zu ändern - Ergebnis war, daß das Feld nun wieder leer ist.

Ich versteh das ganze jetzt nicht mehr!!!?
 
Zurück