Bonjour à tous,
J'ai un petit problème avec ce bout de code. Lorsque la condition est remplie, la base de données se met à jour correctement mais ma page est automatiquement actualisée à la fin de la requête. De ce fait, le message Bravo, un code... n'apparaît jamais!
Code : Tout sélectionner
$sql = "SELECT SUM(clic) as nb FROM ptc_controle WHERE login='$emailutil' AND clic='1'";
$req=mysql_query($sql) or die(mysql_error());
$data=mysql_fetch_array($req);
$nbc=$data['nb'];
//on va vérifier si la condition est remplie
if ($nbc>=18)
{//on met à jour la table !!!C'est cette requête qui pose problème !!!!!!!!!!!!!!!!!!!!!!!
$sql = "UPDATE ptc_controle SET clic=2,hconversion=NOW() WHERE login='$emailutil' AND clic=1 LIMIT $ptc_nbclic";
$req = mysql_query($sql) or die(mysql_error());
echo "Bravo, un code de $ptc_cadeau points de fidélité vient de vous être envoyé, $ptc_nbclic clics ont été retirés de votre cagnotte.<br>";
}
echo 'Votre cagnotte PTC contient actuellement <b>'.$nbc.'</b> clic(s). Dès que votre cagnotte contiendra '.$ptc_nbclic.' clics, vous recevrez un code de '.$ptc_cadeau.' points de fidélité.<br>';
Mais si je remplace ma deuxième requête par
Code : Tout sélectionner
$sql = "UPDATE ptc_controle SET clic=1,hconversion=NOW() WHERE login='$emailutil' AND clic=1 LIMIT $ptc_nbclic";
Tout fonctionne à la perfection, la requête est effectuée et la boucle se termine avec l'affichage du message (bien sûr, cela ne sert à rien mais si ça peut servir à comprendre le problème)
Un grand merci pour votre aide
PS: Table avec Mysql de structure
CREATE TABLE ptc_controle (
login varchar(50) NOT NULL default '',
ip varchar(25) NOT NULL default '',
idpub int(11) NOT NULL default '0',
gain float(11,6) NOT NULL default '0.000000',
clic varchar(4) NOT NULL default '0',
hverif datetime NOT NULL default '0000-00-00 00:00:00',
hconversion datetime NOT NULL default '0000-00-00 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;