Vinzenz Mai: Verrechnet

Beitrag lesen

Hallo Steffen,

Ihr habt ja Recht. Also habe ich es auch inzwischen so umgesetzt.
Ich hoffe, die Halbwertszeit dieses Codes ist etwas höher als die des Vorangegangenen. ;-)

mal schauen: die Spalte last ist diejenige, die von der möglichen Magie des TIMESTAMP-Datentyps am besten profitiere kann, ich rede von

DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Eigenschaften, die die Spalte vielleicht sogar schon hat (durch eingebaute Magie, die dort ebenfalls erläutert ist).

update user set
last = now(),
node_uz = "0.82034500 1267803801"
where
Session = "7e16..." AND
last > NOW() - INTERVAL 3600 SECOND AND
user_gesperrt = "0";

Du kannst Dir somit das explizite Updaten der Spalte sparen. Mit meinem anderen Vorschlag wären wir bei

[code lang=sql]UPDATE user SET
    node_uz = NOT node_uz
WHERE
    Session = '7e16...' AND
    last > NOW() - INTERVAL 3600 SECOND AND
    user_gesperrt = '0';

  

> $result=mysql\_query($query);  
> if ($result==FALSE)  
>          {  
> 	die("Fehler");  
  
Wie war's noch. die() ist keine Fehlerbehandlung, siehe auch [Zitat 1282](http://community.de.selfhtml.org/zitatesammlung/zitat1282).  
  
Protokolliere Fehler und MySQL-Fehlermeldung, etwa in der Art  
    add\_protocol($query, mysql\_error());  
    // und einer selbstgeschriebenen Protokollierfunktion  
  
    // Überlege, was Du weiter tun willst.  

> 	 }  
>   
> if  (mysql\_affected\_rows() < 1)  
> {  
  
// Anmerkung: Auch wenn man das sehr häufig sieht, ist es fehlerbehaftet:  

> header("Location: logout.php");  
  
// [der Location-Header möchte eine absolute URI haben](/archiv/2009/1/t182063/#m1204546).  
// Mach's richtig. Ist ja kein Problem.  
  

> exit;  
> }  
> [/code]  
  

> Und ich bedanke mich bei Euch Beiden  
  
Sowas kommt immer gut an.  
  
  
Freundliche Grüße  
  
Vinzenz