Se connecter avec
S'enregistrer | Connectez-vous

PHP une nuit de recherche ... if qui passe pas...

Dernière réponse : dans Programmation

Bonjour... je poste car çA fait depuis hiere soir que je cherche et que je trouve pas, pourriez vous m'éclairer que j'aille me coucher ?

Bref le code c'est pour compter les visiteurs sur mon site c'est assez simple mais le probleme c'est que çA update jamais dans le if pourtant je vois pas de faute!!!

  1. $tps_max_connex = 180;
  2. $heure_max = $time-$tps_max_connex;
  3. $delete_innactifs = query('DELETE FROM stats_visiteurs WHERE time < "'.$heure_max.'"');
  4. $total_connexion = mysql_num_rows(query('SELECT * FROM stats_visiteurs WHERE ip='.$_SERVER['REMOTE_ADDR'].' '));
  5. if($total_connexion >= 1){$update_membres = query('UPDATE stats_visiteurs SET time=\''.$time.'\' WHERE ip=\''.$_SERVER['REMOTE_ADDR'].'\' ');}
  6. else{$ajout_membre = query('INSERT INTO stats_visiteurs VALUES(\''.$_SERVER['REMOTE_ADDR'].'\', \''.$time.'\', \'0\') ');}
  7. echo $total_connexion;

Autres pages sur : php nuit recherche passe

Lassé par la pub ? Créez un compte

Salut,

Déjà tu n'as pas défini ta variable $time (peut-être l'aurais-tu fait plus haut dans la page ?). Donc faut la définir en début de script :
  1. $time = time();

Essaye comme ça, je n'ai pas regardé tout ton code, si ça ne marche pas redis le et je lirai la fin du code ;) 
Expert Programmation

déjà, est-ce que tu passes dans ton if? (un echo de débugage te permettras de le savoir)
si tu n'y passes pas, fait un echo de ton $total_connexion.
Si tu y passes, fait un echo de ta requète et teste la dans phpmyadmin.
D'ailleurs, petite remarque en passant: "time" est un très mauvais nom de champ, il peut être reservé (comme les mot date, text, ...)

Bon tout d'abord il ne faut jamais appeller un champ time. Prend timestamp, ou le nom que tu veux, mais évite time.

Ensuite, essaye avec un code plus propre :
  1. mysql_query('DELETE FROM stats_visiteurs WHERE time < "'.$heure_max.'"');
  2.  
  3. $retour = mysql_query('SELECT COUNT(*) AS nb FROM stats_visiteurs WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"');
  4. $donnees = mysql_fetch_array($retour);
  5.  
  6. if($donnees['nb'] >= 1)
  7. {
  8. mysql_query('UPDATE stats_visiteurs SET time='.$time.' WHERE ip="'.$_SERVER['REMOTE_ADDR'].'"');
  9. }
  10. else
  11. {
  12. mysql_query('INSERT INTO stats_visiteurs VALUES("'.$_SERVER['REMOTE_ADDR'].'", "'.$time.'", "0")');
  13. }
  14.  
  15. echo $total_connexion;

enfaite mon code est bien mis en forme sauf sur idn ça le compacte, et l'erreur j'ai trouvé, figurez vous que mon champs ip était VARCHAR(10) alors que une ip fait au maximum 15 caracteres. et donc mysql inséré juste mais coupé l'ip ce qui fait que la verifications passait mal. là je me met au GD pour que ça représente sous forme de barre :)  bref merci a vous
Lassé par la pub ? Créez un compte
Tom's guide dans le monde