Hallo :-)
Situation:
-php-Skript bekommt Werte aus einem HTML-Dokument übergeben
-ist der übergebene Wert "nc" (no change) soll der schon gespeicherte geladen werden.
Lösungsansatz:
if($macEingabe == "nc")
{
$temp = "SELECT mac FROM systeme where id=\"$idEingabe\"";
$macEingabe = mysql_query($temp);
}
PS: Datenbankverbindung besteht natürlich ;-)
Bei mir wird $macEingabe nicht von "nc" auf den schon vorhandenen (in Datenbank) Wert aktuallisiert...
Jemand einen Tipp?
Gruß, PingOfDeath
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
Tja, an dem kleinen Fragment aus dem Code kann man nicht viel erkennen was die Logik angeht. Eine Fehlermöglichkeit wäre aber, das "register_globals" auf Off ist und somit $macEingabe nicht instanziert ist und keinen Wert hat. Versuch es mal mit $_POST['macEingabe']=== 'nc'.
Hi xafford!
In der If-Abfrage wird das "nc" erkannt und er geht in die If-Schleife auch rein!
Dort wird dann ja in $temp reingeschrieben:
SELECT mac FROM systeme where id="17" (getestet - steht in $temp drin)
Mit " $macEingabe = mysql_query($temp); " dachte ich jetzt den Wert aus der Datenbank in $macEingabe zu bekommen ...
Wie sollte ich es mit $_POST.... denn machen? In $macEingabe steht anfangs ja was drin ( "nc" ), also ist $macEingabe auch instanziert? Den Wert möchte ich ja eigentlich nur auswechseln - oder ist der Befehl für die MySQL-Datenbank falsch, so dass er mir einfach nichts zurückliefert?
-= "register_globals" auf Off ist =- ... ist das nicht auch gut so? Habe mal gelesen das es sicherheitstechnisch so besser ist? Oder verwechsle ich etwas?
Gruß, PingOfDeath
Ach, okay, jetzt seh ich den Fehler. mysql_query setzt nur die Anfrage ab, holt aber nicht das Ergebnis aus der Datenbank ab, Du speicherst also mit:
$macEingabe= mysql_query($tmp);
Nur, ob der Query erfolgreich war oder nicht. Ändere mal den Code folgendermaßen:
$db= mysql_connect(...);
f($macEingabe == "nc") {
if($query= mysql_query('SELECT mac FROM systeme where id="'.mysql_real_escape_string($idEingabe, $db).'" LIMIT 1')) {
$result= mysql_fetch_row($query);
$macEingabe= $result[0];
}
}
Das mit register_globals stimmt, man sollte es auch Sicherheitsgründen deaktivieren.
Danke xafford! :-)
hier nochmal der code so wie er bei mir jetzt läuft :
if($macEingabe = "nc")
{
mysql_connect ("$serverSQL","$userSQL","$passSQL") or die ("keine Verbindung zum Server
");
mysql_select_db ("datenbank") or die ("keine Verbindung zur Datenbank
");
$query = mysql_query("SELECT mac FROM tabelle WHERE id=\"$idEingabe\"");
$result=mysql_fetch_row($query);
$macEingabe=$result[0];
}
Gruß, PingOfDeath