php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-03-2002, 22:25
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard Werte nach bestimmter Zeit auf Null setzen?

Hallo zusammen,

ich schreibe gerade an einer Topliste. Für die eingetragenen Seiten werden die eingehenden (in) und ausgehenden (out) klicks gezählt und in einer sql-DB gespeichert.
Jetzt möchte ich, dass gleichzeitig die in/out-Werte aller Seiten nach einer bestimmten Zeit (z.B. 2 Wochen) automatisch auf 0 gesetzt werden.

Bin für jeden Tipp dankbar!

cu
langerxxx
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 18-03-2002, 22:42
Benutzerbild von Berni Berni
  OWNER
Links : Onlinestatus : Berni ist offline
Registriert seit: Jan 2001
Ort: Frankfurt / Egelsbach
Beiträge: 6.311
Blog-Einträge: 6
Berni befindet sich auf einem aufstrebenden Ast
Standard

also
1. Zeitframe festlegen (z.b. 14Tage)
2. Falls ein besucher auf die Topliste kommt und Zetframe abgelaufen ist, wird die Liste auf Null gesetzt.
3. fertisch

cu
berni
__________________

php-Entwicklung | ebiz-consult.de
PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
die PHP Marktplatz-Software | ebiz-trader.de
Mit Zitat antworten
  #3 (permalink)  
Alt 18-03-2002, 22:50
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard mmh...

Danke schonmal,

aber lass dich von der Zahl meiner Beiträge nicht täuschen. Bin immer noch Newbie in Sachen PHP. :-)
Kannst du mir mal ein paar Code-Teile posten, damit ich hier weiterkomme?!

Danke im voraus!

cu
langerxxx
Mit Zitat antworten
  #4 (permalink)  
Alt 18-03-2002, 23:10
Benutzerbild von Berni Berni
  OWNER
Links : Onlinestatus : Berni ist offline
Registriert seit: Jan 2001
Ort: Frankfurt / Egelsbach
Beiträge: 6.311
Blog-Einträge: 6
Berni befindet sich auf einem aufstrebenden Ast
Standard

-du must dir nur ein Startdatum (TimStamp) in einer Datei oder in einer Tabelle "merken"

-Bei jedem Aufruf deiner Topliste muss überprüft werden ob eine bestimmte Anzahl (nDays) von Tagen vergangen ist.

ist das der Fallm werden alle Einträge aus der Db gelöscht und dein Startdatum wird auf das aktuelle Datum gesetz.

Spiel geht von vorne los...


Fang einfach mal an und stelle dann deine Fragen gezielter.

cu
berni
__________________

php-Entwicklung | ebiz-consult.de
PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
die PHP Marktplatz-Software | ebiz-trader.de
Mit Zitat antworten
  #5 (permalink)  
Alt 25-03-2002, 21:55
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Question Frage zum Code...

Hallo,

ich habe jetzt mal einen Anfang zu dem oben gestellten Problem geschrieben. Mir ist allerdings noch nicht ganz klar, wie zu dem Datum aus der Tabelle reset 14 Tage hinzuzählen kann?!
Kann mir da jemand mal den fehlenden Teil posten und hat jemand noch Verbesserungsvorschläge? :-)

Hier der Code:

$reset_interval = 14;

$result = mysql_query("SELECT datum FROM reset");
$date_last_reset = mysql_fetch_array($result);

$date_today = date("Y-m-d");
$date_reset = ($date_today 'hier irgendwie + $reset_interval, oder?');


if($date_last_reset = $date_reset) {
mysql_query("UPDATE reset SET click_out = 0, click_in = 0 WHERE click_in >= 1");
mysql_query("UPDATE reset SET datum = current_date");
}

Danke im voraus.

cu
langerxxx
Mit Zitat antworten
  #6 (permalink)  
Alt 26-03-2002, 00:28
JOat
 Registrierter Benutzer
Links : Onlinestatus : JOat ist offline
Registriert seit: Feb 2002
Beiträge: 458
JOat ist zur Zeit noch ein unbeschriebenes Blatt
JOat eine Nachricht über ICQ schicken
Standard

schau dir mal den kleinanzeigen markt unter http://www.traut24.com an da gibts so ne ähnliche funktion!!

SOFARJOAT
__________________
the end comes faster than you think - you've already reached it!
Mit Zitat antworten
  #7 (permalink)  
Alt 26-03-2002, 01:11
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard mmh...

Danke für den Tipp, aber aus der Funktion werde ich nicht so ganz schlau...

Bin für jeden Tipp dankbar!

cu
langerxxx
Mit Zitat antworten
  #8 (permalink)  
Alt 26-03-2002, 17:03
erbse
 Newbie
Links : Onlinestatus : erbse ist offline
Registriert seit: Sep 2001
Beiträge: 14
erbse ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nun, ich würde es so machen:


$reset_interval = 14*24*60*60; //Anzahl*tage*min*sec

$result = mysql_query("SELECT datum FROM reset");
$date_last_reset = mysql_fetch_array($result);

$date_today = time(); // aktueller timestamp

if(($date_last_rest+$reset_interval) > $date_today ) {
mysql_query("UPDATE reset SET click_out = 0, click_in = 0 WHERE click_in >= 1");
mysql_query("UPDATE reset SET datum = '$date_today'");
}

ist mit timestamp einfacher als mit date(), imho
__________________
Gruß erbse
ErbseNet.de
Mit Zitat antworten
  #9 (permalink)  
Alt 27-03-2002, 09:55
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Standard Fehlermeldung

Hallo erbse,

schon mal danke für den Tipp. Sieht schon prima aus. Allerdings bekomme ich folgende Fehlermeldung und ich weiß nicht woher...

Fehlermeldung: Fatal error: Unsupported operand types in /mnt/ls5/01/806/00000001/htdocs/toplist/index.php on line 30

Und hier nochmal der Code, das Datum ist im Format 2002-03-22 gespeichert:

$reset_interval = 14*24*60*60; //Anzahl*tage*min*sec

$result = mysql_query("SELECT datum FROM reset");
$date_last_reset = mysql_fetch_array($result);


$date_today = time(); // aktueller timestamp


if(($date_last_reset+$reset_interval) > $date_today ) {
mysql_query("UPDATE sites SET click_out = 0, click_in = 0 WHERE click_in >= 1");
mysql_query("UPDATE reset SET datum = '$date_today'");
}
Mit Zitat antworten
  #10 (permalink)  
Alt 27-03-2002, 10:11
DaPhreak
 Member
Links : Onlinestatus : DaPhreak ist offline
Registriert seit: Dec 2001
Ort: a.D. Ostsee
Beiträge: 486
DaPhreak ist zur Zeit noch ein unbeschriebenes Blatt
DaPhreak eine Nachricht über ICQ schicken
Standard

jetzt hab ich mal ne Frage :

Setzt
PHP-Code:
time(); 
die das komplette Datum in einen Zeit-
stempel um oder nur die Uhrzeit ?????

mfg daphreak
__________________
If something's HARD to do,

then it's not worth doing.
(Homer J. (Jay) Simpson)
Mit Zitat antworten
  #11 (permalink)  
Alt 27-03-2002, 10:21
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Post ...

So weit ich weiß, liefert Time den kompletten Zeitstempel:

lauf Def. time -- Return current UNIX timestamp

Oder liege ich da falsch??

cu
langerxxx
Mit Zitat antworten
  #12 (permalink)  
Alt 27-03-2002, 22:26
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Question Weiß noch jemand Rat??

Hallo zusammen,

habe nochmal ein wenig weiter geschrieben. Allerdings scheint es bei der Berechnung des reset-Datums einen Fehler zu geben. Das Feld 'datum' wird wie gesagt im Format 2002-03-22 gespeichert.

Bin für jeden Tipp dankbar!

Hier der Code:

$reset_interval = 14*24*60*60; //Anzahl*tage*min*sec

$result = mysql_query("SELECT datum FROM reset");

$date_last_reset = mysql_fetch_array($result);

echo "$date_last_reset[datum]";

$date_last_reset = $date_last_reset[datum] + $reset_interval;

echo "$date_last_reset";

$date_today = time(); // aktueller timestamp

if($date_last_reset > $date_today ) {
mysql_query("UPDATE sites SET click_out = 0, click_in = 0 WHERE click_in >= 1");
mysql_query("UPDATE reset SET datum = '$date_today'");
}

cu
langerxxx
Mit Zitat antworten
  #13 (permalink)  
Alt 27-03-2002, 22:43
hand
 PHP Expert
Links : Onlinestatus : hand ist offline
Registriert seit: Dec 2001
Ort: Kärnten
Beiträge: 3.138
hand ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Eine Anrgegung, vergiß die Berechnung, machs einfacher

$result = mysql_query("SELECT datum, DATE_ADD(datum, INTERVAL 14 DAY) AS heuteund14, now() as jetzt FROM reset");

// in heuteund14 steht das Datum mit den hinzugezählten 14 Tagen
// in jetzt steht der Heutige Tag (mit Uhrzeit)
...

if($date_last_reset > $date_today ) {
mysql_query("UPDATE sites SET click_out = 0, click_in = 0 WHERE click_in >= 1");
mysql_query("UPDATE reset SET datum = DATE_ADD(datum, INTERVAL 14 DAY)");
}

-------------

DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
ADDDATE(date,INTERVAL expr type)
SUBDATE(date,INTERVAL expr type)

Diese Funktionen können Datumsberechnungen durchführen.
(Ab MySQL Version 3.22.)
ADDDATE() und SUBDATE() sind Synonyme für DATE_ADD() und DATE_SUB().

In der Version MySQL 3.23, kannst Du auch + und - anstatt DATE_ADD() oder DATE_SUB() verwenden,
soferne der Ausdruck auf der rechten Seite einem DATETIME oder DATE Format entspricht.

"date" i.a. Beschreibung ist das Startdatum.
"expr" spezifiziert das Interval, welches addiert oder subtrahiert werden soll.
"type" beschreibbt wie das Interval interpretiert werden soll.

SECOND Sekunden
MINUTE Minuten
HOUR Stunden
DAY Tage
MONTH Monate
YEAR Jahre
MINUTE_SECOND Minuten:Sekunden
HOUR_MINUTE Stunden:Minuten
DAY_HOUR "Tage Stunden"
YEAR_MONTH "Jahre-Monate"
HOUR_SECOND "Stunden:Minuten:Sekunden"
DAY_MINUTE "Tage Stunden:Minuten"
DAY_SECOND "Tage Stunden:Minuten:Sekunden"

mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
-> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY + "1997-12-31";
-> 1998-01-01
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVAL 1 DAY);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVAL "1:1" MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
INTERVAL "1 1:1:1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
-> 1997-12-02
mysql> select date_add("1999-01-01", interval 1 day);
-> 1999-01-02
mysql> select date_add("1999-01-01", interval 1 hour);
-> 1999-01-01 01:00:00

Wenn ein ungültiges Datum verwendet wird, ist das Ergebnis NULL.
Mit Zitat antworten
  #14 (permalink)  
Alt 27-03-2002, 23:33
langerxxx
 Member
Links : Onlinestatus : langerxxx ist offline
Registriert seit: Dec 2001
Beiträge: 210
langerxxx ist zur Zeit noch ein unbeschriebenes Blatt
Question ...

Hallo Hand,

danke für die ausführliche Antwort. Ist wirklich einfacher so. Aber irgendwie läuft der Code nicht, hast du eine Ahnung, was da noch falsch ist? (Bei der Ausgabe der Variablen $date_today und $date_reset erfolgt keine Ausgabe??)

$result = mysql_query("SELECT datum, DATE_ADD(datum, INTERVAL 14 DAY) AS date_reset, now() as date_today FROM reset");

// in date_reset steht das Datum mit den hinzugezählten 14 Tagen
// in date_today steht der Heutige Tag (mit Uhrzeit)

echo "$date_reset";
echo "$date_today";


if($date_reset > $date_today ) {
mysql_query("UPDATE sites SET click_out = 0, click_in = 0 WHERE click_in >= 1");
mysql_query("UPDATE reset SET datum = DATE_ADD(datum, INTERVAL 14 DAY)");
}

Thanks in advance!

cu
langerxxx
Mit Zitat antworten
  #15 (permalink)  
Alt 28-03-2002, 07:12
hand
 PHP Expert
Links : Onlinestatus : hand ist offline
Registriert seit: Dec 2001
Ort: Kärnten
Beiträge: 3.138
hand ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$result mysql_query("
    SELECT
        datum,
        DATE_ADD(datum, INTERVAL 14 DAY) AS date_reset,
        CURDATE() as date_today
    FROM
        reset"
); 

while(
$row mysql_fetch_array($result)) {
    
$date_reset $row[date_reset];
    
$date_today $row[date_today];
}

echo 
"date_reset:$date_reset<br>"
echo 
"date_today:$date_today<br>"

if(
$date_reset $date_today ) { 
    
mysql_query("UPDATE sites SET click_out = 0, click_in = 0 WHERE click_in > 0"); 
    
mysql_query("UPDATE reset SET datum = $date_reset"); 

Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:30 Uhr.