Condition qui marche pas

Eléphanteau du PHP | 37 Messages

29 sept. 2007, 10:41

Bonjour,
J'essaye d'ajouter le nombre de connexion d'un membre dans une base de données. Jusque là tout est ok. Mais j'y ajoute une condition pour des éventuelles mise à jour de date ...
$requete = "SELECT * FROM $base_table WHERE ip = 'reference'";  
$resultat = mysql_query($requete);	
$data = mysql_fetch_assoc($resultat);		   
// On récupère la date du dernier jour stocké dans la base	
$date_stockee1 = $data['la_date_jour'];// c'est la date de référence jour		
$date_stockee2 = $data['la_date_semaine'];// c'est la date de référence semaine
$date_stockee3 = $data['la_date_mois'];// c'est la date de référence mois	  
// Si on a changé de jour, on remet le nombre de visites quotidiennes à 0 pour chaque membre 
     if ( ($aujourdhui - $date_stockee1) > (24*60) ){		  
// Le nombre de visites quotidiennes de chaque visiteur de la base est remis à 0		  
$requete = "UPDATE $base_table SET total_jour = '0' WHERE ip != 'reference'";		
$resultat = mysql_query($requete);		
Or la mise à zéro ne se fait. Est-ce une erreur dans le code ?
Merci
j'ajoute que :
$jour = date('j');	
$mois = date('n');	
$annee = date('Y');   
$aujourdhui = mktime(0, 0, 0, $mois, $jour, $annee);	// date d'aujourd'hui à minuit au format timestamp	
$maintenant = time(); // date de l'instant présent au format timestamp

Mammouth du PHP | 1511 Messages

29 sept. 2007, 11:13

Ne manquerait t'il pas une accollade pour fermer la condition ?

Sinon, quel est le format de ta date stockée dans la base de données ? timestamp unix ?
Si oui, utilise plutôt 24*3600 pour obtenir le nombre de secondes d'une journée ;)

Invité
Invité n'ayant pas de compte PHPfrance

29 sept. 2007, 11:19

Ne manquerait t'il pas une accollade pour fermer la condition ?
Non je crois pas (en tout pas d'erreur signalée)
Pour la date :timestamp unix oui
Je vais essayer ce que tu m'as dit mais j'aimerai vérifier avant une durée d'une journée juste pour vérifier que cela marche.
J'avais essayé :
if (($aujourdhui - $date_stockee1) > (60)){ }   

Mais la mise à jour ne marche pas.
Je comprends pas.

Mammouth du PHP | 1511 Messages

29 sept. 2007, 11:29

Fais un echo des variables que tu utilises afin de vérifier leur contenu et poste ca ici ;)
@+

Eléphanteau du PHP | 37 Messages

29 sept. 2007, 11:39

A priori c'est parce que j'avais placé les lignes suivantes
$jour = date('j');     
$mois = date('n');     
$annee = date('Y');    
$aujourdhui = mktime(0, 0, 0, $mois, $jour, $annee);    // date d'aujourd'hui à minuit au format timestamp     
$maintenant = time(); // date de l'instant présent au format timestamp 
après la condition.
Je viens de les mettre avant la condition et la le total_jour s'est bien remis à zero.