Probleme d'update de DB.

Signaler
Messages postés
35
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
18 février 2009
-
Messages postés
35
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
18 février 2009
-
Bonjour, voila je suis en train de faire un site de CPM.
Je l'ai presque terminer; il ne me reste plus que ce petit probléme.
J'ai mit les annonceurs dans un array pour ouvoir clicker dessu, jusque la sa va.
Mais quand je veut contabiliser le click du membre, les points n'apparaissent pas.
Voici mon code:

$nbpoint = 0.001;        $sql "UPDATE log SET euros euros + ".$nbpoint." WHERE login='$_SESSION[login]'";
        mysql_query($sql);

J'ai bien fait la connection a la DB, seléction de la table... Mais c'est ici que sa chamboule.
Pourriez vous m'aider svp, car aumoin mon site sera pret pour la nouvelle année :)

Bonne fin d'année!!

7 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

"Mais c'est ici que sa chamboule."
=> C'est à dire ? Ca chamboule comment ? T'as un message d'erreur ? Si oui, lequel ? Si non, que se passe-t-il ?

$sql "UPDATE log SET euros euros + ".$nbpoint." WHERE login='$_SESSION[login]'";

C'est pas vraiment la peine de mettre entre guillemets doubles si tu les refermes quand t'as une variable : autant utiliser des guillemets simples, ça sera plus performant.
Et puis ta variable $_SESSION[login] est mal placée et mal écrite.

Essaie comme ça :

$sql = 'UPDATE log SET euros=euros+'.$nbpoint.' WHERE login=\'' . $_SESSION['login'].'\';';
Messages postés
35
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
18 février 2009

Merci pour ta réponse.
Enfaite quand le membre clic, il est renvoyer a cette page.
Ca met le site du lien, mais ca ne comptabilise pas  l'update.
Je te met toute ma page:

<?   
       
        include"connect.php";
       
        $nbpoint = 0.001;
        $sql = 'UPDATE log SET euros=euros+'.$nbpoint.' WHERE login=\'' . $_SESSION['login'].'\';';
        mysql_query($sql);
       
        $nbpoints = 1;        $sqls "UPDATE annonces SET points points - ".$nbpoints." WHERE adresse='$url'";
        mysql_query($sqls);
       
        $url = $_GET['url'];
        header("Location: $url");
       
?>
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Au risque de me répéter : as-tu une erreur ?
Tu ne fais aucune vérification sur l'excution de la requête : est-elle correctement exécutée ?

if (!$res=mysql_query($sql)) {
die ('Erreur n°' . mysql_errno() . ' : ' . mysql_error() . '
' . $sql);
}

C'est crade, mais au moins tu sauras si ta requête est exécutée ou pas.
Essaie aussi d'exécuter la requête dans phpMyAdmin pour voir si elle passe bien.

Est-ce qu'aucune des deux requêtes UPDATE n'est prise en compte, ou une seule ?

Et pour que ta deuxième requête soit plus propre :

$sqls = 'UPDATE annonces SET points=points-' . $nbpoints . ' WHERE adresse=\'' . $url . '\';';

Et pour finir, si $nbpoints est fixé en dur dans ton script, autant le mettre directement dans ta requête :

$sql = 'UPDATE log SET euros=euros+0.001 WHERE login=\'' . $_SESSION['login'].'\';';

$sqls = 'UPDATE annonces SET points=points-1 WHERE adresse=\'' . $url . '\';';

A moins, bien sûr, que cette valeur ne soit fixée dans un fichier de configuration.
Messages postés
35
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
18 février 2009

OK merci.
Alors je n'ai aucune erreur quand je lance le script, mais il n'est pas prix en compte.
et tu as raison pour le $nbpoints.

J'ai mit comme tu m'as dit:

Voici donc ma page de compabilisation:

<?   
       
        include"connect.php";
       
        if (!$res=mysql_query($sql)) {
   die ('Erreur n°' . mysql_errno() . ' : ' . mysql_error() . '
' . $sql);
}
       
        $sql = 'UPDATE log SET euros=euros+0.001 WHERE login=\'' . $_SESSION['login'].'\';';
        mysql_query($sql);
       
        $sqls = 'UPDATE annonces SET points=points-1 WHERE adresse=\'' . $url . '\';';
        mysql_query($sqls);
       
        $url = $_GET['url'];
        header("Location: $url");
       
?>

Et ma page connect.php:

<?

$host = "http://sql.free.fr/phpMyAdmin/";
$user = "clickenor";
$passBD = "********";
$bdd = "clickenor";

// connexion

mysql_connect($host,$user,$passBD);

mysql_select_db("$bdd")

?>

Et voici ce qu'il me met quand je clic cette fois en rajoutant la vérification de l'érreur SQL:

Erreur n°1065 : Query was empty

Voila.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Ben ouais, mais en général, on affiche l'erreur APRES la commande qui pose problème... Enfin je sais pas, il ne me semblait pas nécessaire de préciser que le test devait se faire APRES l'exécution des requêtes.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Lol ouais...c'est une curieuse façon de faire...
Ce que tu as fait là, c'est un peu comme si tu demandais de but en blanc à ta copine
"Alors, t'es d'accord ou pas???" AVANT de lui dire sur quoi elle doit être d'accord. Forcément, ta copine te répond "mais t'es stupide ou quoi, je dois être d'accord sur QUOI??" et comme ta copine a un sale caractère, ça met un terme à la discussion, et l'intention que tu avais de lui dire APRES ce sur quoi elle devait donner son accord ne se concrétisera jamais.
Messages postés
35
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
18 février 2009

Lol!
Merci pour l'explication, vous savez sui nouvo dans le php.
Alors voila ce ke sa donne quand je le met après:

Voila, sa ne me dit rien XD et le point n'est pas attribuer.
Donc je ne sait pas d'ou sa vien.
Merci de vos deux réponses!
Bonne année!