[Résolu] Compteur avec cookie et Mysql

Compteur avec cookie et Mysql [Résolu] - PHP - Programmation

Marsh Posté le 19-04-2006 à 13:47:39    

Bonjour @ tous,
 
Encore moi vous allez dire :p, mais la j'ai un souci avec mon compteur de visite.
J'ai créé deux fichier pour mon compteur un fichier qui vérifie qu'il y a un cookie (sinon il le crée) et incrémente la base s'il n'existe pas.
voici sont code (il est insésé avant toute balise HTML) :

Code :
  1. <?
  2. if(!isset($_COOKIE['compteur'])){
  3. // création du cookie
  4. $timestamp_expire = time() + 365 * 24 * 3600; // Le cookie expirera dans un an
  5. setcookie('compteur','true',$timestamp_expire); // On écrit le cookie
  6. //connection à la base et incrémentation du compteur
  7. mysql_connect("sql.free.fr", "*****", "*****" );
  8. mysql_select_db("damien_bras" );
  9. $compter = mysql_query("SELECT * FROM compteur" );
  10. $doncompt = mysql_fetch_array($compter);
  11. $nombrevis=$doncompt['nbvis'];
  12. $nombrevis++;
  13. mysql_query("UPDATE compteur SET nbvis='$nombrevis' WHERE ID='1'" );
  14. mysql_close();
  15. }
  16. elseif($_COOKIE['compteur'] == 'true'){
  17. // connction à la bdd pour lire le compteur
  18. mysql_connect("sql.free.fr", "***", "****" );
  19. mysql_select_db("damien_bras" );
  20. $compter = mysql_query("SELECT * FROM compteur" );
  21. $doncompt = mysql_fetch_array($compter);
  22. $nombrevis=$doncompt['nbvis'];
  23. mysql_close();
  24. }
  25. ?>


Et j'ai un autre fichier qui lie la variable $nombrevis pour l'afficher :

Code :
  1. <?
  2. echo $nombrevis."<br>";
  3. //lecture compteur de visite
  4. $taille=strlen($nombrevis); //nombre de chiffre dans la variable
  5. $reste=6-$taille; //calcul le nombre de zéro qu'il faudra ajouter
  6. $taillefin = 6;
  7. $i=0;
  8. while ($taille > 0) {
  9. $taille--;
  10. $nombrei[$taille]=$nombrevis{$i};
  11. $i++;
  12. }
  13. while ($i <= $taillefin){
  14. $nombrei[$i]="0";
  15. $i++;
  16. }
  17. $taillefin --;
  18. while ($taillefin >=0){
  19. echo '<img src="../images/'.$nombrei[$taillefin].'.gif" width="12" height="15">';
  20. $taillefin--;
  21. }
  22. ?>


Mon problème est que quand le cookie n'existe pas, il incrémente bien le nombre dans la bdd mais il y a un problème à l'affichage et je ne vois pas où. J'espère que ce n'ai pas une erreur bidon (sinon je m'arrache les doights pour ne plus faire de PHP (dèjà que je ne suis pas très doué, çà limitera les dégat :))).
Pouvez vous m'aider ?
pour essayer sur une page : http://damien.bras.free.fr/pages/accueil.php
 
Merci d'avance.


Message édité par playmobil77d le 20-04-2006 à 21:16:11

---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Marsh Posté le 19-04-2006 à 13:47:39   

Reply

Marsh Posté le 19-04-2006 à 15:56:35    

:bounce:


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Marsh Posté le 19-04-2006 à 21:22:42    

euh, si tu veux juste afficher des images pour chaque chiffre, pourquoi tu fais pas directement une boucle sur $nombrevis ?
genre  
settype($nombrevis, 'string');
$x=0;
while (isset($nombrevis{$x})) {
echo '<img src="../images/'.$nombrevis{$x}.'.gif"  />';
$x++;
}
 
Et pour ta requete incrémentant ta bdd, pourquoi pas un "UPDATE compteur SET nbvis=(nbvis + 1) WHERE ID='1'"

Reply

Marsh Posté le 19-04-2006 à 21:59:30    

Citation :

pourquoi tu fais pas directement une boucle sur $nombrevis ?
genre  
settype($nombrevis, 'string');
$x=0;
while (isset($nombrevis{$x})) {
echo '<img src="../images/'.$nombrevis{$x}.'.gif"  />';
$x++;
}


Ben en fait, je voudrait afficher le nombre de visite sur 6 caracteres (donc en rajoutant des 0) et je ne sais pas avec ci dessus, sa peut le faire.

Citation :


Et pour ta requete incrémentant ta bdd, pourquoi pas un "UPDATE compteur SET nbvis=(nbvis + 1) WHERE ID='1'"


Tout simplement car je n'en ai pas eu l'idée merci ;) :p


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Marsh Posté le 20-04-2006 à 10:29:16    


Citation :


Et pour ta requete incrémentant ta bdd, pourquoi pas un "UPDATE compteur SET nbvis=(nbvis + 1) WHERE ID='1'"


Salut C'est bon sa fonctionne en modifiant le requete sql, par contre je ne vois pas pourquoi sa change quelque chose. Une petite explication existe ?  :ange:  
 
Sinon merci beaucoup  :love:


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Marsh Posté le 20-04-2006 à 16:53:01    

bah je sais pas a quoi ressemble ta table SQL, mais visiblement tu fais l'update sur un ID=1
Donc la récupération du compteur devait aussi se faire avec cet ID j'imagine.
 
Donc ta requete 'select * from compteur' ramenait peut-être d'autres lignes (j'en sais rien). Du coup il aurait fallu faire un 'select * from compteur where id=1'

Reply

Marsh Posté le 20-04-2006 à 21:15:51    

Djebel1 a écrit :

bah je sais pas a quoi ressemble ta table SQL, mais visiblement tu fais l'update sur un ID=1
Donc la récupération du compteur devait aussi se faire avec cet ID j'imagine.
 
Donc ta requete 'select * from compteur' ramenait peut-être d'autres lignes (j'en sais rien). Du coup il aurait fallu faire un 'select * from compteur where id=1'


Ah oui bien pensé, c'était peut-être sa. En tout cas merci encore ;)


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed