PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechnen in mySQL?


Beamer
06.07.2002, 17:21:39
Hallo!

Ich habe eine mySQL-Tabelle mit den Feldern user (Text) und lastaccess (Datetime). Wie kann ich eine Abfrage erstellen, die mir neben dem Benutzernamen auch die Zeit (in Tagen) anzeigen, die ein Benutzer nicht aktiv war? (aktuelles Datum minus lastacces)

Zweite Frage: Kann jemand ein gutes mySQL-Buch empfehlen?

Gruß,

Beamer

Ben20
06.07.2002, 18:02:46
Du kannst an eine Mysql Datenbank jede mathematische Aufgabe stellen in dem Du ein Select Komando ausführst.


SELECT 1 + 1 FROM irgendeinetabelle;
-> 2;


Das mit der inactiven Zeit löst Du aber wohl besser mit PHP und einer while() - Schleife, da die Methode wohl schneller ist als die Zeit von MySQL ausrechnen zu lassen.


Als Buch kann ich Dir "MySQL" von Michael Kofler empfehlen. Alles recht gut beschrieben. Von einfachen Abfrage über komplexe Einfügeoperationen bis hin zu MySQL Hilfsmitteln

Beamer
06.07.2002, 18:15:19
Schade, ich wollte eigentlich die PHP-Variante umgehen, z.B. weil ich die Tabelle gleich sortieren kann. Na gut. Danke!

|Coding
06.07.2002, 18:20:22
hi,

also ich würde dir auch empfehlen es mit php aus zurechnen.

so zum bleistift:


<?
/*
stell hier die verbindung zu deiner db her und hol dir die zeit des letzten zugriffs.
*/
$aktuellezeit = time(); // gibt dir den aktuellen timestamp in sekunden wieder.
// du kannst auch microtime() nehmen, das geht aber nur bei
// unix/linux servern.
echo $aktuellezeit - $gespeichertezeit; // ausrechnung und ausgabe.
?>


eventuell musst du deinen datenbank eintrag noch in sekunden umrechen...

Beamer
06.07.2002, 18:41:45
Oh no... sortieren kann ich ja auch nach dem letzten Zugriff *andenkopffass* ;-)

|Coding
06.07.2002, 18:51:56
oh man ;-)

Matt
06.07.2002, 18:59:31
SCHWACHSINN!

mySQL bietet auch funktionen, die alles mögliche können.

select TO_DAYS(now)-TO_DAYS(name der spalte des letzten logins) as vergangeneTage
müsste eigentlich gehen.

Ben20
06.07.2002, 22:00:09
Eben kein Schwachsinn!

Natürlich kannst Du den Zeitraum auch direkt vom MySQL Server ausgeben lassen. Nur dauert das eben länger als wenn MySQL nur die reinen Daten liefern muß.

Matt
06.07.2002, 22:26:26
programmlaufzeit in den größenordnungen ist nicht sonderlich relevant denke ich, da das ja keine 100 Benutzer gleichzeitig benutzen werden und das ist die komfortabelste lösung.
allerdings muss ich zugeben, dass ich dein reply schlampig gelesen (überflogen?) habe und für mich rausgekommen ist, dass du der ansicht bist, dass es nicht geht.
nicht mein tag heute. eindeutig nicht!

Ben20
06.07.2002, 22:46:10
Stimmt schon, in der Größenordnung ist der Geschwindigkeitsunterschied wahrscheinlich nicht nachweisbar.

P.S. Jeder hat mal einen schlechten Tag ;-)

|Coding
07.07.2002, 14:27:46
Original geschrieben von Ben20
P.S. Jeder hat mal einen schlechten Tag ;-)


stimmt, meiner ist heute :-/

Ben20
07.07.2002, 17:51:29
Warum denn das?

|Coding
07.07.2002, 18:04:10
naja alles was ich heute anfasse fällt mir hin oder geht anders wie kaputt und wenn ich ein bissel proggen will dann gehts meistens in die hose....

Ben20
07.07.2002, 22:42:57
Das legt sich auch wieder ;-)