Tijden laten zien en mee rekenen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roel

Roel

12/07/2007 17:11:00
Quote Anchor link
Hallo,

Voor een ban systeem gebruik ik dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$persoon
= mysql_query("SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) >= tijd AND login='".$login."'");
$bestaat = mysql_num_rows($persoon);

if($bestaat >= 1)
{

    mysql_query("UPDATE users SET ban=0 WHERE login='".$login."'");
}

?>


Als de ban ingaat word tijd op NOW() gezet, de ban duurt dus altijd 10 minuten. Nu wil ik kunnen weergeven hoelang je nog gebanned bent. Hoe doe ik dit? Ik snap namelijk nog steeds niet helemaal hoe je met tijden "rekent".
 
PHP hulp

PHP hulp

21/11/2024 14:09:47
 
Joren de Wit

Joren de Wit

12/07/2007 17:58:00
Quote Anchor link
Je kunt beter in je database de tijd opslaan waarop de ban afloopt, anders moet je in al je queries namelijk de periode dat een ban duurt op gaan nemen.

De query die je in de huidige situatie kunt gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT TIMEDIFF(DATE_ADD(bantijd, INTERVAL 10 MINUTE), NOW()) AS verschil
FROM tabel


Als je de eindtijd van de ban opslaat wordt de query iets eenvoudiger:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT TIMEDIFF(bantijd, NOW()) AS verschil
FROM tabel


Kijk anders ook eens in mijn pas nieuwe tutorial over datum- en tijdfunctie in MySQL voor meer voorbeelden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.