SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.01.2008, 21:53:38
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
Hilfe bei Datumsfunktion - Wie viele User waren letzten Monat Online?

Hy Members!!!

Ich bin eben auf folgendes Problem gestoßen, und zwar möchte ich abfragen wie viele User letzten Monat online waren.

Meine SQL-Tabelle (Online) sieht wie folgt aus

|IP ||Datum |Zeit ||Username |Status
----------------------------------------------------------------------
217.286.15.2 |15 Jan 2008 |18:18:11|KSTICKER |Offline
217.286.15.3 |16 Jan 2008 |18:19:45|KSTICKER |Member
217.286.15.2 |16 Dez 2007 |15:12:31| |Gast

Su nun möchte ich eine SQL-Abfrage in der Art machen:

Select * From Online Where Datum = * Dez * (Gut nun ist noch das Problem mit dem Jahr)

Wie kann ich so etwas realisieren?
PS. In meiner Statistik soll immer die anzahl der Besuche des aktuellen Monats angezeigt werden.

Das gleiche würde ich gerne immer auf den gestrigen Tag anwenden.

Hier meine Scripts, ich habe schon ein Script für das Gestrige Datum geschrieben, aber was ist wenn es der erste des monates ist also Z.B: 01 Jan 2008?


PHP-Code:
<!--ERSTES BETRETEN DER SEITE-->
    
    <?php
    
#Grundabfrage Online
    
$base_online mysql_query("SELECT * FROM Online");
    
    
    
#anzahl gaeste auslesen im moment
    
$gast_now_count mysql_query("SELECT * FROM Online WHERE Status = 'Gast'");
    
$gast_now_count_ausgabe mysql_num_rows($gast_now_count);
    
    
#anzahl Member auslesen im moment
    
$user_now_count mysql_query("SELECT * FROM Online WHERE Status = 'Member'");
    
$user_now_count_ausgabe mysql_num_rows($user_now_count);
    
    
#anzahl besuche heute auslesen
    
$today_count mysql_query("SELECT * FROM `Online` WHERE Datum = '".date("d M Y")."' ");
    
$today_count_ausgabe mysql_num_rows($today_count);
    
    
#registrierte Useranzahl angeben
    
$sum_user MYSQL_QUERY"SELECT * FROM User");  
    
$sum_user_ausgabe mysql_num_rows($sum_user);
    
    
#neusten User angeben
    
$maxid_user MYSQL_QUERY"SELECT max(UserID) AS UserID FROM User"); 
    
$maxid_user_ausgabe mysql_fetch_assoc($maxid_user);
    
$username MYSQL_QUERY"SELECT Username FROM User WHERE UserID = '".$maxid_user_ausgabe['UserID']."'"); 
    
$username_ausgabe mysql_fetch_assoc($username);
    
    
#anzahl der gesendeten nachrichten angeben
    
$maxid_NachNummer MYSQL_QUERY"SELECT max(NachNummer) AS NachNummer FROM Messages"); 
    
$maxid_NachNummer_ausgabe mysql_fetch_assoc($maxid_NachNummer);
    
    
#anzahl neuer Member angeben
    
$datum date('d.m.y');
    
$today_register MYSQL_QUERY"SELECT * FROM User Where RegDate = '".$datum."'"); 
    
$today_register_ausgabe mysql_num_rows($today_register);
    
    
#datensatz updaten wenn nach angegebener Zeit keine reaktion festgestellt wurde
    #unterscheiden zwischen member und gast
    #MEMBER
    
if ($base_online['Status'] == "Member"){
    
mysql_query("UPDATE Online SET Status = 'Offline' WHERE DATE_SUB(NOW(), '%H','%i','%s',INTERVAL 5 Second) > Zeit");
    
#GAST 
    
}elseif ($base_online['Status'] == "Gast"){
    
mysql_query("UPDATE Online SET Status = 'Offline' WHERE DATE_SUB(NOW(), '%H','%i','%s',INTERVAL 5 Second) > Zeit");
    
#OFFLINE
    
}else{};
    
    
#Gestriges Datum heraus finden
    
$gestern_day date('d') - 1;
    
$gestern_mon date('M');
    
$gestern_jah date('Y');
    
$gestern $gestern_day.' '.$gestern_mon.' '.$gestern_jah;
    
    
#gestrige Besucherzahl heraus finden
    
$yesterday_count mysql_query("SELECT * FROM `Online` WHERE Datum = '".$gestern."' ");
    
$yesterday_count_ausgabe mysql_num_rows($yesterday_count);
    
    
?>
Mit Zitat antworten
  #2  
Alt 18.01.2008, 13:46:17
knight1 knight1 ist offline
Junior Member
 
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
knight1 eine Nachricht über MSN schicken knight1 eine Nachricht über Skype™ schicken
AW: Hilfe bei Datumsfunktion - Wie viele User waren letzten Monat Online?

Zitat:
Zitat von ksticker Beitrag anzeigen
Hy Members!!!

Ich bin eben auf folgendes Problem gestoßen, und zwar möchte ich abfragen wie viele User letzten Monat online waren.

Meine SQL-Tabelle (Online) sieht wie folgt aus

|IP ||Datum |Zeit ||Username |Status
----------------------------------------------------------------------
217.286.15.2 |15 Jan 2008 |18:18:11|KSTICKER |Offline
217.286.15.3 |16 Jan 2008 |18:19:45|KSTICKER |Member
217.286.15.2 |16 Dez 2007 |15:12:31| |Gast

Su nun möchte ich eine SQL-Abfrage in der Art machen:

Select * From Online Where Datum = * Dez * (Gut nun ist noch das Problem mit dem Jahr)

Wie kann ich so etwas realisieren?
PS. In meiner Statistik soll immer die anzahl der Besuche des aktuellen Monats angezeigt werden.

Das gleiche würde ich gerne immer auf den gestrigen Tag anwenden.

Hier meine Scripts, ich habe schon ein Script für das Gestrige Datum geschrieben, aber was ist wenn es der erste des monates ist also Z.B: 01 Jan 2008?


PHP-Code:
<!--ERSTES BETRETEN DER SEITE-->
    
    <?php
    
#Grundabfrage Online
    
$base_online mysql_query("SELECT * FROM Online");
    
    
    
#anzahl gaeste auslesen im moment
    
$gast_now_count mysql_query("SELECT * FROM Online WHERE Status = 'Gast'");
    
$gast_now_count_ausgabe mysql_num_rows($gast_now_count);
    
    
#anzahl Member auslesen im moment
    
$user_now_count mysql_query("SELECT * FROM Online WHERE Status = 'Member'");
    
$user_now_count_ausgabe mysql_num_rows($user_now_count);
    
    
#anzahl besuche heute auslesen
    
$today_count mysql_query("SELECT * FROM `Online` WHERE Datum = '".date("d M Y")."' ");
    
$today_count_ausgabe mysql_num_rows($today_count);
    
    
#registrierte Useranzahl angeben
    
$sum_user MYSQL_QUERY"SELECT * FROM User");  
    
$sum_user_ausgabe mysql_num_rows($sum_user);
    
    
#neusten User angeben
    
$maxid_user MYSQL_QUERY"SELECT max(UserID) AS UserID FROM User"); 
    
$maxid_user_ausgabe mysql_fetch_assoc($maxid_user);
    
$username MYSQL_QUERY"SELECT Username FROM User WHERE UserID = '".$maxid_user_ausgabe['UserID']."'"); 
    
$username_ausgabe mysql_fetch_assoc($username);
    
    
#anzahl der gesendeten nachrichten angeben
    
$maxid_NachNummer MYSQL_QUERY"SELECT max(NachNummer) AS NachNummer FROM Messages"); 
    
$maxid_NachNummer_ausgabe mysql_fetch_assoc($maxid_NachNummer);
    
    
#anzahl neuer Member angeben
    
$datum date('d.m.y');
    
$today_register MYSQL_QUERY"SELECT * FROM User Where RegDate = '".$datum."'"); 
    
$today_register_ausgabe mysql_num_rows($today_register);
    
    
#datensatz updaten wenn nach angegebener Zeit keine reaktion festgestellt wurde
    #unterscheiden zwischen member und gast
    #MEMBER
    
if ($base_online['Status'] == "Member"){
    
mysql_query("UPDATE Online SET Status = 'Offline' WHERE DATE_SUB(NOW(), '%H','%i','%s',INTERVAL 5 Second) > Zeit");
    
#GAST 
    
}elseif ($base_online['Status'] == "Gast"){
    
mysql_query("UPDATE Online SET Status = 'Offline' WHERE DATE_SUB(NOW(), '%H','%i','%s',INTERVAL 5 Second) > Zeit");
    
#OFFLINE
    
}else{};
    
    
#Gestriges Datum heraus finden
    
$gestern_day date('d') - 1;
    
$gestern_mon date('M');
    
$gestern_jah date('Y');
    
$gestern $gestern_day.' '.$gestern_mon.' '.$gestern_jah;
    
    
#gestrige Besucherzahl heraus finden
    
$yesterday_count mysql_query("SELECT * FROM `Online` WHERE Datum = '".$gestern."' ");
    
$yesterday_count_ausgabe mysql_num_rows($yesterday_count);
    
    
?>
Zuerst mal folgendes.
Mit diesem hier
PHP-Code:
Select From Online Where Datum = * Dez 
Prüfst Du ob die Zeichenfolge * Dez * vorhanden ist.

Um auf eine Teilzeichenfolge zu Prüfen gibt es die Möglichkeit mit LIKE zu arbeiten.

Nehmen wir folgendes Beispiel:
Es sollen alle Datensätz zurückgeliefert werden, welche in dem Datums-Feld die Zeichenfolge Dez enthält.

Dazu kann man folgenden Query bauen:
PHP-Code:
SELECT FROM `OnlineWHERE `DatumLIKE '%Dez%' 
Dieser Query liefert alle Datensätze zurück welche an irgendeiner stelle in der Gesamtzeichenfolge des Datums-Feldes die Teilzeichenfolge Dez enthält. Dafür sind die %-Zeichen gut.

Was das zusätzliche Prüfen auf das Jahr angeht, muss man vorher besteimmen in welchem monat man sich gerade befindet. Wenn man dann feststellt dass man sich im Januar befindet muss man logischerweiße als das zu prüfende Jahr das aktuelle Jahr minus 1 nehmen. Ansonsten nimmt man das aktuelle Jahr als Suchbasis.

Der Query ändert sich sich dann in den folgenden:

PHP-Code:
SELECT FROM `OnlineWHERE `DatumLIKE '%Dez $jahr%' 
Die Variable $jahr wird dir von PHP aus deiner Rechnung geliefert auf welches Jahr geprüft werden soll. Eventuell musst Du die Variable folgendermaßen angeben: ".$jahr." oder {$jahr}.


Kai aka Knight1
Mit Zitat antworten
  #3  
Alt 18.01.2008, 17:04:44
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
AW: Hilfe bei Datumsfunktion - Wie viele User waren letzten Monat Online?

Ok, danker werd es mal versuchen, ab das datum nun auf 3 tabellen aufgeteilt Tag,Monat,Jahr und alles als zahl, damit es sich besser rechnen lässt, vielen dank für deine antwort
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
user online dante_fresh PHP Grundlagen 2 27.09.2006 19:35:38
Benötige Hilfe beim Coden Pommes2 PHP für Fortgeschrittene und Experten 0 17.06.2006 14:48:12
htaccess user doppelt / passwörtern unterschiedlich ist das möglich ? steffi Apache HTTP-Server 7 06.04.2005 20:13:45
Das soll nach 1 h ausgeführt werden! Spike15 PHP Grundlagen 12 04.04.2005 16:29:57
Probleme bei nem user online Script KiKoN PHP Grundlagen 15 28.11.2004 13:22:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:06:18 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt