Aller au contenu

Erreur d'incrementation du nombre d'affichage


YannCo

Sujets conseillés

Salut,

Cela fait un bout de temps que je n'étais pas venu et que j'avais arreté le PHP mais ... je m'y remet et je suis confronté a un petit problème !

j'appele un fichier article.php ainsi index.php?id=xx

index.php

	if(isset($_GET['id']))
{

$sql = 'select t_article from articles where id_article = '.$_GET['id'];
$req = mysql_query($sql);
$npage = mysql_num_rows($req);
if($npage == 1)
{
$file = 'article';
while($list = mysql_fetch_array($req))
{
$title = $list['t_article'];
}
$title = "Site - ".$title;
$run = mysql_query("update articles set vues = vues +1 where id_article = ".$_GET['id']."");
}
....
include $file.".php";

Je tente donc d'incrémenter mon nombre de vues de 1 à chaque affichage de l'article ! normalement rien de compliqué !

Seulement lorceque je lis l'article, celui ci s'incrémente bien, mais quant je reviens à la liste des articles le nombre d'affichage a été incrémenté de 2 !!!!!!

Donc si quelqu'un avait une idée sur la provenance de l'erreur ... pour moi ce serait comme si la requete avait été éxécutée une deuxieme fois mais je ne vois pas où !!!

J'ai tenté de metre cette requete dans le fichier article.php mais c'est pareil !!

Et j'en profite pour poser une autre question, y a pas plus simple que while .. mysql_fetch_array ... pour récuperer une seule valeur d'une table ????

Merci pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

Salut,

A mon sens c'est parce que ce fichier est appelé lui aussi lorsque tu affiches la liste des articles (pour en prendre les titres)

Et tu as plus simple que le while.... vu que tu n'as qu'une seule valeur à récupérer. Tout simplement en supprimant la boucle while():

$list = mysql_fetch_array($req);
$title = $list['t_article'];

Pour info, ton site sur Celeonet ne fonctionne plus :(

post-1-1178715436_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

Salut,

A mon sens c'est parce que ce fichier est appelé lui aussi lorsque tu affiches la liste des articles (pour en prendre les titres)

Oui, ça doit être un truc du genre que je n'arrive pas trop à éxpliquer, pourquoi serait il appelé sans mon get ? et pourquoi dans ce cas seul l'article précedement lu se verait incrémenter de 2 !!!

lorce que j'affiche ma page où il y a la liste des articles, il n'y a pas d'incrémentation qui se fait,

lorceque j'ouvre l'article mon nombre d'affichage s'incrémente bien de un (le nombre d'affichage s'affiche en bas de la page)

puis en le quittant pour revenir à l'accueil ou sur n'importe quel autre page du site j'ai l'impression qu'il réincrémente le nombre d'affichage de cet article! vu que quant je retourne sur ma liste d'article le dernier article lu est incrémenté de 2 :mad2:

Et tu as plus simple que le while.... vu que tu n'as qu'une seule valeur à récupérer. Tout simplement en supprimant la boucle while():

$list = mysql_fetch_array($req);
$title = $list['t_article'];

Pour info, ton site sur Celeonet ne fonctionne plus :(

post-1-1178715436_thumb.png

Merci, je vais pouvoir supprimer quelques lignes de codes !!

Pour le site, ouai, faut que je remete mon profil à jour !

Regarde aussi si tu n'as pas une balise IMG à vide ( <img src="" alt="xxxx" />

Intéressant ça !!!!!!!!

celà pourrait entrainer ce type d'erreur ??? je ne vois pas comment :D mais ouai, il y a des images genre avatar qui peuvent être affichées si le champ a été rempli, je vais ajouter une condition qui vérifi que le champ a bien été rempli avant de tenter d'afficher l'image (je sais, mon script n'est pas encore bien bien finit :P )

Lien vers le commentaire
Partager sur d’autres sites

Re,

pour la mise en cache ... heu non ! c'est une simple requete avec affichage direct du contenu dans la page !

pour Adsense .. ce serait balot que comme par hazard le moteur décide de lire l'article que je test et ne lise pas les autres !

La page doit être rechargée à un moment ou un autre, je ne vois vraiment pas quant !!!

Demain, je vais refaire ma page de liste des articles le plus simplement possible puis un lien vers mon article et un affichage de l'article le plus simple, sans aucune autre page et voir comment ça réagit, si ça marche je reconstruit le site autour de ça élément par élément car là ça me saoul !!!!!

Lien vers le commentaire
Partager sur d’autres sites

pour Adsense .. ce serait balot que comme par hazard le moteur décide de lire l'article que je test et ne lise pas les autres !
Je ne parlais pas du robot du moteur de recherche, mais du robot de AdSense (les pubs contextuelles).

Pour pouvoir afficher des pubs selon le contenu des pages, il faut que AdSense vienne voir le contenu des pages et quand quelqu'un affiche une page qui a été peu affichée jusque là, le robot vient immédiatement relire la page en question pour vérifier le contenu et ajuster les pubs qu'il place sur la page.

Ceci suppose évidemment que tes pages affichent des annonces AdSense. Si c'est le cas, tu peux vérifier ma "théorie" en consultant le fichier log ou en accédant aux pages après avoir désacativé le JavaScript de ton navigateur.

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

Ok, je ne savais pas qu'il fonctionnait commme ça !

Je ferais ce test alors ! et si c'est ça ...... ben ça m'aura bien fait galerer !

Merci pour le tuyau !

Lien vers le commentaire
Partager sur d’autres sites

Bravo !!!!

C'est bien Adsense !!!! dire que j'ai galeré je ne sais combien de temps pour ça !!!!!!

Merci !!

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...