Homepage selbermachen 7.852 Themen, 35.619 Beiträge

EINEN Wert aus MySQL auslesen

PingOfDeath / 4 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
xafford PingOfDeath „EINEN Wert aus MySQL auslesen“
Optionen

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'.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
PingOfDeath xafford „Tja, an dem kleinen Fragment aus dem Code kann man nicht viel erkennen was die...“
Optionen

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

bei Antwort benachrichtigen
xafford PingOfDeath „Hi xafford! In der If-Abfrage wird das nc erkannt und er geht in die If-Schleife...“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
PingOfDeath xafford „Ach, okay, jetzt seh ich den Fehler. mysql_query setzt nur die Anfrage ab, holt...“
Optionen

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

bei Antwort benachrichtigen