PHP-> besoin d'aide pour un compteur de clique
26 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
PHP-> besoin d'aide pour un compteur de clique
Bonjour, je voudrai compter les cliques sortants de mon site. Par exemple, si quelqu'un clique sur un lien partenaire, l'adresse sera de type -www.example.com/click.php?id=1
Comment faire pour ajouter un click dans click.php et faire la redirection? Merci.
Voici le code que j'ai commencé (le fichier config.php a les infos pour se conecter à la base de données) :
Comment faire pour ajouter un click dans click.php et faire la redirection? Merci.
Voici le code que j'ai commencé (le fichier config.php a les infos pour se conecter à la base de données) :
- Code: Tout sélectionner
<?php
$_SESSION['id']=$id
?>
<?php
include("config.php");
$result = mysql_query("SELECT url, click FROM `click` WHERE id='$id'");
while ($myrow = mysql_fetch_row($result)) {
$query="UPDATE click SET click=click+1 WHERE id='$id';";
header(
"Location: $myrow[0]");
exit();
?>
J'ai cherché et trouvé ça mais ça ne marche pas, sauriez-vous me dire pourquoi? Merci.
PS : En faisant -www.example.com/click.php?id=11, je suis redirigé sur la page index.html
- Code: Tout sélectionner
<?
if(empty($id))
{
include("index.html");
}
else
{
include("config.php");
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "SELECT url, click FROM clicks WHERE id='$id'";
$result = mysql_db_query($db_name, $sql, $connexion);
while($resultat = mysql_fetch_array($result))
{
$total=$resultat[click];
$url=$resultat[url];
}
$total=$total+1;
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "UPDATE clicks SET clicks='$total' WHERE id='$id'";
mysql_db_query($db_name, $sql, $connexion);
header("location: $url");
}
?>
PS : En faisant -www.example.com/click.php?id=11, je suis redirigé sur la page index.html
Ca ne marche pas, à chaque fois, la page index.html est affichée. Voici le code :
Quelqu'un pourrait m'aider svp? Merci.
- Code: Tout sélectionner
<?
parse_str(getenv("QUERY_STRING"));
if(empty($id))
{
include("index.html");
}
else
{
include("config.php");
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "SELECT url, click FROM clicks WHERE id='$id'";
$result = mysql_db_query($db_name, $sql, $connexion);
while($resultat = mysql_fetch_array($result))
{
$total=$resultat[click];
$url=$resultat[url];
}
$total=$total+1;
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "UPDATE clicks SET clicks='$total' WHERE id='$id'";
mysql_db_query($db_name, $sql, $connexion);
header("location: $url");
}
?>
Quelqu'un pourrait m'aider svp? Merci.
essaye comme ça :
- Code: Tout sélectionner
<?
parse_str(getenv("QUERY_STRING"));
if (!isset($id))
{
include("index.html");
}
else
{
include("config.php");
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "SELECT url, click FROM clicks WHERE id='$id'";
$result = mysql_db_query($db_name, $sql, $connexion);
while($resultat = mysql_fetch_array($result))
{
$total=$resultat[click];
$url=$resultat[url];
}
$total=$total+1;
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "UPDATE clicks SET clicks='$total' WHERE id='$id'";
mysql_db_query($db_name, $sql, $connexion);
header("location: $url");
}
?>
Comme ça je pense :
- Code: Tout sélectionner
<?
parse_str(getenv("QUERY_STRING"));
if (!isset($id))
{
include("index.html");
}
else
{
include("config.php");
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "SELECT url, click FROM clicks WHERE id='$id'";
$result = mysql_db_query($db_name, $sql, $connexion);
if ($resultat = mysql_fetch_array($result))
{
$total=$resultat[click];
$url=$resultat[url];
$total=$total+1;
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "UPDATE clicks SET clicks='$total' WHERE id='$id'";
mysql_db_query($db_name, $sql, $connexion);
header("location: $url");
}
else
{
include("index.html");
};
};
?>
Merci, il y avait une petite erreur dans votre code. Ca marche avec celui là :
- Code: Tout sélectionner
<?
parse_str(getenv("QUERY_STRING"));
if (!isset($id))
{
include("index.html");
}
else
{
include("config.php");
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "SELECT url, click FROM clicks WHERE id='$id'";
$result = mysql_db_query($db_name, $sql, $connexion);
if ($resultat = mysql_fetch_array($result))
{
$total=$resultat[click];
$url=$resultat[url];
$total=$total+1;
$connexion = mysql_connect($db_host,$db_login,$db_pass);
$sql = "UPDATE clicks SET clicks='$total' WHERE id='$id'";
mysql_db_query($db_name, $sql, $connexion);
header("location: $url");
}
else
{
include("index.html");
};
}
?>
Je procède de cette façon :
Je définis en début de script une valeur $total=0
Puis je fais une requête allant chercher la valeur de click pour chaque ligne
de la table, du type "SELECT click FROM clicks where.... " (définir un where valable pour chaque ligne à compter, du genre where click>'0')
puis dans le while de l'execution de la requête while ($resultat = mysql_fetch_array($result))
j'ajoute $total = $total + $click;
ainsi $total s'incrémente de la valeur de $click
Il ne reste plus qu'à afficher $total à la fin de la requete.
Il y a peut-être plus simple, mais je ne connais pas la fonction spécifique, s'il y en a une.
Je définis en début de script une valeur $total=0
Puis je fais une requête allant chercher la valeur de click pour chaque ligne
de la table, du type "SELECT click FROM clicks where.... " (définir un where valable pour chaque ligne à compter, du genre where click>'0')
puis dans le while de l'execution de la requête while ($resultat = mysql_fetch_array($result))
j'ajoute $total = $total + $click;
ainsi $total s'incrémente de la valeur de $click
Il ne reste plus qu'à afficher $total à la fin de la requete.
Il y a peut-être plus simple, mais je ne connais pas la fonction spécifique, s'il y en a une.
Ben j'ai fais ça, mais ça ne marche pas :
Erreur à la ligne $total = 0
- Code: Tout sélectionner
<?
$total = 0
$click = mysql_num_rows(mysql_query("SELECT click FROM 'clicks' where 'click'>'0'"));
while ($resultat = mysql_fetch_array($result, MYSQL_NUM)) {
$total = $total + $click;
?>
Erreur à la ligne $total = 0
26 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité





le forum