[PHP]incrementation

Résolu/Fermé
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 - 29 mars 2007 à 23:01
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 - 30 mars 2007 à 15:40
Bonsoir,

j'ai un petit probleme, j'aimerai incrementer la colonne nbr_aff de la table image en meme temps que l'image apparaisse .

Voici le code :

<?PHP

//connexion sql
require ("config/conf.php"); 

//selection d'une image aleatoire
$sql = 'SELECT id,lien_image,nbr_aff FROM images ORDER BY rand() limit 0,1 ';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); 
while($data = mysql_fetch_array($req)) 
{
//affiche une image au hasard
echo '<img src= ' .$data['lien_image'] . '>' ;
 

// C'est ici que sa me pose probleme j'aimerai incrementer la colonne nbr_aff selon l'id de l'image mais je n'y arrive pas.
$sql2 = "UPDATE pub SET nbr_aff =" .$data['nbr_aff'] + 1. "WHERE id = .$data['id']"  ;


}


mysql_close();
?>



Merci d'avance.

PS : nbr_aff c'est le nombre de fois que l'image c'est affiché.

----------------
- [ Juck'n0 ]-
A voir également:

3 réponses

vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
30 mars 2007 à 11:06
Salut,

Il y a quelques fautes dans la variable. Essaye avec ça :

[code]
$sql2 = "UPDATE pub SET nbr_aff = '".$data['nbr_aff'] + 1 ."' WHERE id = ".$data['id'] ;
[/code]

Si ça ne marche pas, dis le nous.

@bientôt.
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
30 mars 2007 à 12:55
Bonjour,

En fait, je te conseille plutôt de faire l'incrémentation en SQL.
Pourquoi ? Tout simplement dans le cas où plusieus utilisateurs tombent en même temps sur la même image, tu ne réutilises pas la valeur trouvée au début du script, mais bien celle en cours dans la base de données.
Ensuite, tu n'as pas demandé à php d'exécuter la requête ! Alors forcément, ça marche mons bien ;)

Cela donnerait donc :
$sql2 = "UPDATE pub SET nbr_aff=nbr_aff+1 WHERE id=".$data['id'];
mysql_query($sql2);
Voilà :)
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
30 mars 2007 à 15:40
Merci Reivax962 sa marche =)
et merci aussi pour ta réponse vlmath !!

a bientot
----------------
- [ Juck'n0 ]-
0