Tom: Kann ich eine DB abdrage auch als variabele speichern?

Beitrag lesen

Hello Martin,

Kann mir jemand sagen, was an folgendem code falsch ist?

$abfrage = "SELECT * FROM $tabelle";
       $ergebnis = mysql_query($abfrage);

$dbip2 = $row->dbid ".<br>." $ip;
       $uhrzeit2 = $row->uhrzeit".<br>."$now;
       $userserver2 = $row->userserver".<br>."$userserver;
       $proatseite2 = $row->proatseite".<br>."$proatseite;
       $vonhttp2 = $row->vonhttp".<br>."$vonhttp;

$aendern = "UPDATE $tabelle Set dbip = '$dbip2', uhrzeit = '$uhrzeit2', userserver = '$userserver2', proatseite = 'proatseite2', vonhttp = '$vonhttp2' WHERE dbip = '$ip' AND WHERE unixt > $timestamp";

Ich kann mir denken, was Du erreichenn willst.
Du musst Dir dabei einfach nur Gedanken über den Evaluierungszeitpunkt machen.
Die Werte werden den Variablen zum Zeitpunkt der Zuweisung an $abfrage zugewiesen.

Nun muss man entweser dafür sorgen dass der String erst später evaluiert wird. Dafür gibt es die Funktion eval() http://de.php.net/manual/de/function.eval.php oder man baut eine eigene Funktion um die Abfrage drum herum, der man dann die relevanten Werte übergibt.

function select_recs(Parameterliste)
{
 $abfrage = "SELECT * FROM $tabelle";
        $ergebnis = mysql_query($abfrage);

$dbip2 = $row->dbid ".<br>." $ip;
        $uhrzeit2 = $row->uhrzeit".<br>."$now;
        $userserver2 = $row->userserver".<br>."$userserver;
        $proatseite2 = $row->proatseite".<br>."$proatseite;
        $vonhttp2 = $row->vonhttp".<br>."$vonhttp;
}

Dann ist die Lebensdauer von $abfrage ja immer auf die lebensdauer der Funktion beschränkt und wird bei jedem Aufruf der Funktion neu zugewiesen.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau