Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
24 Stunden zeit ueberpruefung [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
24 Stunden zeit ueberpruefung


 
dESIGN
10-07-2002, 20:18 
 
Hallo!

ich wmoechte gerne ueberpruefen ob jemand in den letzten 24 stunden 3mal gepostet hat .. wie kann ich das pruefen..

mysql_db_select("bla",SELECT count(usermail) FROM usermails WHERE fromuser='$userid', .....

soweit ist das schon klar.. nur die Zeit abfrage fehlt mir .. in der db wird natuerlich ein unixtimestamp abgespeichert bei jedem post.. also muesste ich praktisch nur noch now() und die timestamps ueberpruefen.. aber wie mache ich das mit der 24 stunden begrenzung? .. es darf nicht die mails mitzaehlen die zb vor 25 oder noch mehr stunden geschrieben wurden.. ;)

hoffe das es solala verstaendlich geworden ist... Danke schonmal fuer die Hilfe..

:)

 
goth
10-07-2002, 20:20 
 
SELECT member, count(usermail) AS COUNTED
FROM usermails
WHERE fromuser='$userid'
AND zeitfeld>=NOW()-INTERVAL 24 HOUR
GROUP BY member
HAVING COUNTED>=3

 
dESIGN
10-07-2002, 20:23 
 
huh...

das ging sehr schnell.. hehe .. vielen Dank @goth ..werde es nachher gleich mal probieren. :D

 
dESIGN
10-07-2002, 21:19 
 
mhh., irgendetwas mach ich falsch.. als result bekomme ich immer die antwort:


Warning: Unable to jump to row 0 on MySQL result index 2 ...

ich mache immer - mysql_result($check,0); - (wobei $check natuerlich der db query ist :) )

...ich habe de nteil mit der HAVING anweisung mal weggelassen.. weil ich das ergebnis spaeter mit if(... ) ueberpruefen moechte..

was mach ich falsch? ... ich moechte das eine bestimmte 'userlevel', nur maximal 3 mail am tag in der db plazieren kann.. was ich dann auch spaeter abfrage.. wie schon gesagt via if(..)

:rolleyes:

 
goth
10-07-2002, 21:25 
 
Mach's mal Schritt für Schritt ... wie's ein guter Debugger macht ... :)

Schau erstmal was das Statement z.B. mit dem phpMyAdmin macht ...

oder gib' mal die MySQL-Fehlermeldungen aus z.B.:


$result=mysql_db_query("bla", "SELECT member, count(usermail) AS COUNTED FROM usermails WHERE fromuser='$userid' AND zeitfeld>=NOW()-INTERVAL 24 HOUR GROUP BY member HAVING COUNTED>=3") or die(mysql_error());

 
dESIGN
10-07-2002, 21:36 
 
ok,

also PHPmyADMIN meint es sei alles ok, mit der mysql_error ausgabe bekomme ich die gleiche fehler meldung angezeigt, wie ich vorhin schon beschrieben hatte..

hier ist mal meine abfrage:


$mailcheck = mysql_db_query("db3","SELECT fromuser, count(usermail) AS COUNTED FROM usermails WHERE fromuser='$userid' AND timestamp>=NOW()-INTERVAL 24 HOUR GROUP BY fromuser HAVING COUNTED>=3") or die(mysql_error());
$result1 = mysql_result($mailcheck,0);

 
goth
10-07-2002, 21:41 
 
Probier's mal mit array mysql_fetch_array ( resource Ergebnis-Kennung [, int Ergebnistyp]) (http://www.php.net/manual/de/function.mysql-fetch-array.php)

also:

$mailcheck = mysql_db_query("db3","SELECT usermail, count(usermail) AS COUNTED FROM usermails WHERE fromuser='$userid' AND timestamp>=NOW()-INTERVAL 24 HOUR GROUP BY usermail HAVING COUNTED>=3") or die(mysql_error());
while ($row = mysql_fetch_array($mailcheck)) {
...
}

 
dESIGN
11-07-2002, 10:49 
 
jep, mit mysql_fetch_array hatte ich es auch schon probiert.. will aber nicht... ich glaub ich muss mir eine andere loesung suchen.. aber trotzdem Danke!


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