[PHP] Addition de points avec MySQL problème
Résolu/Fermé
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
-
10 mai 2008 à 15:17
TLLwebtv Messages postés 59 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 9 septembre 2008 - 12 mai 2008 à 19:08
TLLwebtv Messages postés 59 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 9 septembre 2008 - 12 mai 2008 à 19:08
A voir également:
- [PHP] Addition de points avec MySQL problème
- Créer une carte avec des points - Guide
- Formule excel addition - Guide
- Points de suite word - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
32 réponses
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 mai 2008 à 16:53
12 mai 2008 à 16:53
Enfin ta preuve je veux bien^^ sauf qu'il faut être connecté^^ Mais je te fais confiance.
Pas grave on va tenter autre chose. Si tu fais :
mysql_query("UPDATE membres SET points = '3' WHERE id='$id'") or die ('Erreur : '.mysql_error());
Est-ce que ça marche ? (est ce que les points sont à 3 ?
Si oui : essaye de faire ça :
Et si non : essaye ça :
mysql_query("UPDATE membres SET points = 3 WHERE id='$id'") or die ('Erreur : '.mysql_error());
Pas grave on va tenter autre chose. Si tu fais :
mysql_query("UPDATE membres SET points = '3' WHERE id='$id'") or die ('Erreur : '.mysql_error());
Est-ce que ça marche ? (est ce que les points sont à 3 ?
Si oui : essaye de faire ça :
<?php session_start(); // Aller chercher les configurations My SQL et verifier l'identite de la personne connectée require_once('config.php'); require_once('verifications.php'); // Récupération du nombre de points $sql = mysql_query("SELECT points FROM nom_de_ta_table WHERE id='$id'"); $result = mysql_fetch_array($sql) or die(mysql_error()); $points = $result[0]; echo "avant chgmt, l'id $id avait $points points<br/>"; // Calcul des points $pointfin = $points+0.05; echo "normalement après l'update il devrait avoir $pointfin points<br/>"; // Operation mysql_query("UPDATE membres SET points='". $pointfin ."' WHERE id='$id'") or die ('Erreur : '.mysql_error()); // Rappel le nombre de points echo'<br/>Vous avez '. $pointfin .' points'; ?>
Et si non : essaye ça :
mysql_query("UPDATE membres SET points = 3 WHERE id='$id'") or die ('Erreur : '.mysql_error());
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
10 mai 2008 à 18:11
10 mai 2008 à 18:11
Bonjour.
Concernant ton problème d'UPDATE, je pense que ton soucis se situe au niveau des guillemets. Essaye ça pour voir :
D'autre part j'ai repéré 2 erreurs sur ta dernière ligne :
En espérant avoir de tes nouvelles
Sylvain
Concernant ton problème d'UPDATE, je pense que ton soucis se situe au niveau des guillemets. Essaye ça pour voir :
mysql_query("UPDATE membres SET points='". $pointfin ."' WHERE id='$id'") or die ('Erreur : '.mysql_error());ou carrément :
mysql_query("UPDATE membres SET points='$pointfin' WHERE id='$id'") or die ('Erreur : '.mysql_error());
D'autre part j'ai repéré 2 erreurs sur ta dernière ligne :
echo'<br/>Vous avez '. $pointfin .' points';
En espérant avoir de tes nouvelles
Sylvain
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
11 mai 2008 à 06:06
11 mai 2008 à 06:06
Merci beaucoup, je vais essayer ça et je vous préviens.
Cordialement
Sylvain
Cordialement
Sylvain
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
11 mai 2008 à 07:22
11 mai 2008 à 07:22
Re-Bonjour,
J'ai essayé et ça ne marche pas, je vais donc expliquer un peut plus en détail ce que je fais : il s'agit d'un site de jeux où lorsque la personne a gagné elle est redirigée vers la page "gain.php" ou il est écrit :
<?php
session_start();
// Aller chercher les configurations My SQL et verifier l'identite de la personne connectée
require_once('config.php');
require_once('verifications.php');
// Calcul des points
$pointfin = $points+0.05;
// Operation
mysql_query("UPDATE membres SET points='". $pointfin ."' WHERE id='$id'") or die ('Erreur : '.mysql_error());
// Rappel le nombre de points
echo'<br/>Vous avez '. $pointfin .' points';
?>
Le but est donc qu'en voyant cette page l'utilisateur puisse gagner 0.05 points.
Merci d'avance
Cordialement
J'ai essayé et ça ne marche pas, je vais donc expliquer un peut plus en détail ce que je fais : il s'agit d'un site de jeux où lorsque la personne a gagné elle est redirigée vers la page "gain.php" ou il est écrit :
<?php
session_start();
// Aller chercher les configurations My SQL et verifier l'identite de la personne connectée
require_once('config.php');
require_once('verifications.php');
// Calcul des points
$pointfin = $points+0.05;
// Operation
mysql_query("UPDATE membres SET points='". $pointfin ."' WHERE id='$id'") or die ('Erreur : '.mysql_error());
// Rappel le nombre de points
echo'<br/>Vous avez '. $pointfin .' points';
?>
Le but est donc qu'en voyant cette page l'utilisateur puisse gagner 0.05 points.
Merci d'avance
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
11 mai 2008 à 14:23
11 mai 2008 à 14:23
Et tu ne veux pas mettre ton code de verifications.php (voir même de config.php mais je ne pense pas qu'il y ai de problème ici) notamment comment tu récupères ta valeur $points, parce que ce script là ne présente pas de soucis à priori
PS. Répondre un dimanche matin à 6h06 !!!!!! Rassure moi tu n'habites pas en France (décalage horaire toussa) ou alors tu n'as pas dormis de la nuit ????
PS. Répondre un dimanche matin à 6h06 !!!!!! Rassure moi tu n'habites pas en France (décalage horaire toussa) ou alors tu n'as pas dormis de la nuit ????
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
11 mai 2008 à 21:16
11 mai 2008 à 21:16
Bonjour,
j'habite la France mais je me réveille toujours très tot :-).
Verifiacation.php
Vérification est un script qui existe déjà, ce n'est pas moi qui l'ai écrit.
Et le fichier config.php :
Voilà tout, est-ce que le problème pourrait venir de la base de donnée ?
merci d'avance
Très cordialement
Sylvain
j'habite la France mais je me réveille toujours très tot :-).
Verifiacation.php
<?php session_start(); require_once('config.php'); $titre_page='Inscription'; include_once('haut.php'); $email=formulaires($_POST['email']); $pseudo=formulaires($_POST['pseudo']); $parrain=formulaires($_POST['parrain']); $mdp=formulaires($_POST['mdp']); $mdp2=formulaires($_POST['mdp2']); $points=formulaires($_POST['points']); $gra1=formulaires($_POST['gra1']); $gra2=formulaires($_POST['gra2']); $gra3=formulaires($_POST['gra3']); $gra4=formulaires($_POST['gra4']); //// VERIFICATIONS //// if(!$mdp || !$mdp2 || strlen($mdp) < 5) { echo'Votre mot de passe ou sa confirmation est inexisant ou votre mot de passe fait moins de 5 carractères<br /><a href="inscription.php" onClick="history.back()">Retour</a>'; include_once('bas.php'); return FALSE; } if($mdp!=$mdp2) { echo'Votre mot de passe n\'est pas le meme que sa confirmation<br /><a href="inscription.php" onClick="history.back()">Retour</a>'; include_once('bas.php'); return FALSE; } if(!$pseudo || strlen($pseudo) > 15) { echo'Votre pseudo est inexisant ou fait plus de 15 carractères<br /><a href="inscription.php" onClick="history.back()">Retour</a>'; include_once('bas.php'); return FALSE; } if(!$email) { echo'Votre e-mail est innexistant.<br /><a href="inscription.php" onClick="history.back()">Retour</a>'; include_once('bas.php'); return FALSE; } //// VERIFICATIONS DES EXISTANCES //// $reponse_mail=mysql_query("SELECT email FROM membres WHERE email='$email'") or die ('Erreur : '.mysql_error()); //verification si e-mail existe déjà $count_mail=mysql_num_rows($reponse_mail); if($count_mail == 1) { echo'Cet e-mail existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>'; include_once('bas.php'); return FALSE; } $reponse_pseudo=mysql_query("SELECT pseudo FROM membres WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error()); //verification si pseudo existe déjà $count_pseudo=mysql_num_rows($reponse_pseudo); if($count_pseudo == 1) { echo 'Ce pseudo existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>'; include_once('bas.php'); return FALSE; } for ($ligne=0;$ligne<30;$ligne++) //Création d'un identifiant { @$session.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1); } $mdp=md5($mdp); //Codage du mot de passe mysql_query("INSERT INTO membres VALUES ('', '$session', '$pseudo', '$parrain', '$mdp', '$email', '$points')") or die ('Erreur : '.mysql_error()); //insertion dans la bdd echo'Merci de vous vous etre inscrit à '.$nom_du_site.'<br /><a href="index.php">Identifiez vous !</a>'; include_once('bas.php'); ?>
Vérification est un script qui existe déjà, ce n'est pas moi qui l'ai écrit.
Et le fichier config.php :
<?php $serveur='localhost'; $user='****'; $mdp='***'; $base='****'; $nom_du_site='KDO Plus'; //Le nom de votre site $votre_email='***@wanadoo.fr'; //Votre e-mail $localite='local'; //Les meta tags (référencement) $meta_description='Jouez et grattez'; $meta_mots_cles='grattages'; @$connect=mysql_connect($serveur, $user, $mdp) or die ('Erreur : '.mysql_error()); @mysql_select_db($base) or die ('Erreur : '.mysql_error()); require_once('fonctions.php'); ?>
Voilà tout, est-ce que le problème pourrait venir de la base de donnée ?
merci d'avance
Très cordialement
Sylvain
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
11 mai 2008 à 23:49
11 mai 2008 à 23:49
Oui c'est bien beau tout ça... A priori je n'ai pas vu d'erreurs.
Mais ça ne me dis pas comment tu récupères ton $points. Je ne vois pas d'autres possibilité pour l'instant mais bon je passe peut être à coté de quelque chose d'autre.
Et la structure de ta base de donnée elle donne quoi ?
Au fait, carractère ne prend qu'un R et innexistant un seul N ;)
PS. Je veux bien, moi aussi ça m'arrive de me lever tôt mais de là à être sur CCM à 6H un dimanche matin !!! :waou:
Mais ça ne me dis pas comment tu récupères ton $points. Je ne vois pas d'autres possibilité pour l'instant mais bon je passe peut être à coté de quelque chose d'autre.
Et la structure de ta base de donnée elle donne quoi ?
Au fait, carractère ne prend qu'un R et innexistant un seul N ;)
PS. Je veux bien, moi aussi ça m'arrive de me lever tôt mais de là à être sur CCM à 6H un dimanche matin !!! :waou:
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 05:56
12 mai 2008 à 05:56
Bonjour,
En ce qui concerne la base de donnée voici comment elle est :
Champ Type Interclassement Attributs Null Défaut
points int(10) UNSIGNED Non 0
Je pense que le problème vient de là: je ne récupère pas $points parce que je vous ai donné en terme de page PHP où il pourrait y avoir une erreur.
Comment faudrait-il faire pour récupérer $points alors ?
Merci d'avance
Cordialement
Sylvain
En ce qui concerne la base de donnée voici comment elle est :
Champ Type Interclassement Attributs Null Défaut
points int(10) UNSIGNED Non 0
Je pense que le problème vient de là: je ne récupère pas $points parce que je vous ai donné en terme de page PHP où il pourrait y avoir une erreur.
Comment faudrait-il faire pour récupérer $points alors ?
Merci d'avance
Cordialement
Sylvain
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 mai 2008 à 10:34
12 mai 2008 à 10:34
Ben c'est sûr que si tu ne récupères pas les valeurs de tes points dans ta base de données tu auras du mal à l'incrémenter...
Tu peux tout simplement faire un "SELECT points FROM nom_de_ta_table WHERE id=$id";
Ca te donnerait :
M'enfin bon ça tu aurais pu le trouver tout seul non ?
PS. 5h56 de plus en plus tôt.......
Tu peux tout simplement faire un "SELECT points FROM nom_de_ta_table WHERE id=$id";
Ca te donnerait :
<?php session_start(); // Aller chercher les configurations My SQL et verifier l'identite de la personne connectée require_once('config.php'); require_once('verifications.php'); // Récupération du nombre de points $sql = mysql_query("SELECT points FROM nom_de_ta_table WHERE id='$id'"); $result = mysql_fetch_array($sql) or die(mysql_error()); $points = $result[0]; // Calcul des points $pointfin = $points+0.05; // Operation mysql_query("UPDATE membres SET points='". $pointfin ."' WHERE id='$id'") or die ('Erreur : '.mysql_error()); // Rappel le nombre de points echo'<br/>Vous avez '. $pointfin .' points'; ?>
M'enfin bon ça tu aurais pu le trouver tout seul non ?
PS. 5h56 de plus en plus tôt.......
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 13:23
12 mai 2008 à 13:23
Re-bonjour,
Tout d'abord merci pour continuer à m'aider au fur et à mesure.
J'ai essayé de placer ce code dans la page "gain.php" mais rien ne change, quand j'y vais dessus mes points n'augmentent pas :-(. Je vais appeler le service technique de mon hébergeur, ils pourront peut-être m'aider.
Je vous tiens au courant dans environ 2 h.
Encore merci
Cordialement
Sylvain
Tout d'abord merci pour continuer à m'aider au fur et à mesure.
J'ai essayé de placer ce code dans la page "gain.php" mais rien ne change, quand j'y vais dessus mes points n'augmentent pas :-(. Je vais appeler le service technique de mon hébergeur, ils pourront peut-être m'aider.
Je vous tiens au courant dans environ 2 h.
Encore merci
Cordialement
Sylvain
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 13:33
12 mai 2008 à 13:33
L'hébergeur est fermé (ce qui est assez rare lors des jours fériés) par contre je pense que le problème vient de la base.
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 mai 2008 à 13:36
12 mai 2008 à 13:36
Je me demandais si tu avais quelque part renseigné la valeur de $id ?
Parce que si ta page ne contient QUE le code si dessus ça ne peut pas marcher sans que tu donnes une valeur à ton $id.
Parce que si ta page ne contient QUE le code si dessus ça ne peut pas marcher sans que tu donnes une valeur à ton $id.
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 15:41
12 mai 2008 à 15:41
La valeur ID est contenue dans la base de donnée MySQL.
J'ai remarqué quelque chose dans votre code : $result[0], pourquoi 0 ?
Je pensais à quelque chose également : est-ce que le problème ne pourrait pas venir de la configuration de la valeur points dans la base de donnée ? Est-ce que "INT" correspond à ce qu'il me faut ?
Merci d'avance
Cordialement
J'ai remarqué quelque chose dans votre code : $result[0], pourquoi 0 ?
Je pensais à quelque chose également : est-ce que le problème ne pourrait pas venir de la configuration de la valeur points dans la base de donnée ? Est-ce que "INT" correspond à ce qu'il me faut ?
Merci d'avance
Cordialement
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 mai 2008 à 16:28
12 mai 2008 à 16:28
INT correspond bien à ce qu'il te faut (tu sais on peut se tutoyer c'est quand même plus convivial ;) ) étant donné que tu utilises des chiffres.
Le result[0] correspond à la première donnée du tableau dans lequel j'ai mis les résultats de ma requête sql ($result = mysql_fetch_array($sql)). Il est vrai qu'au début ça surprend mais je t'assures que tableau[0] correspond bien à la première donnée.
Maintenant passons à ton ID. Je veux bien que cet ID soit contenu dans la base MySQL. Encore faut-il que tu en informe ton script php. Et pour ce faire il faudrait que tu m'indiques comment tu sais quel est l'utilisateur qui arrive à cette page gain.php ?
Je veux dire par là : quelle donnée te permet de savoir que c'est l'utilisateur ayant l'ID 23 et non celui ayant l'ID 69 qui est présent sur ta page et donc que c'est à lui que tu dois ajouter 0,5 points.
Le result[0] correspond à la première donnée du tableau dans lequel j'ai mis les résultats de ma requête sql ($result = mysql_fetch_array($sql)). Il est vrai qu'au début ça surprend mais je t'assures que tableau[0] correspond bien à la première donnée.
Maintenant passons à ton ID. Je veux bien que cet ID soit contenu dans la base MySQL. Encore faut-il que tu en informe ton script php. Et pour ce faire il faudrait que tu m'indiques comment tu sais quel est l'utilisateur qui arrive à cette page gain.php ?
Je veux dire par là : quelle donnée te permet de savoir que c'est l'utilisateur ayant l'ID 23 et non celui ayant l'ID 69 qui est présent sur ta page et donc que c'est à lui que tu dois ajouter 0,5 points.
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 16:32
12 mai 2008 à 16:32
C'est une très bonne remarque; le problème vient, à mon avis, de là. Pourtant $id correspond bien à l'ID de la personne qui est connecté. Donc $id ne devrait pas poser de problème. Par exemple quand j'afficher $pseudo ça m'affiche bien mon pseudo et pourtant il y en a plusieurs.
Cordialement
Sylvain
Cordialement
Sylvain
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 mai 2008 à 16:41
12 mai 2008 à 16:41
Si tu fais un echo $id; au tout début de ton script, ça te donne quoi ?
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 16:47
12 mai 2008 à 16:47
J'ai essayé et effectivement ça m'affiche mon ID (c'est à dire 3). Il reconnait donc bien l'ID de la personne.
Cordialement
Sylvain
echo'<br/>Vous avez '. $pointfin .' points. Votre ID est '. $id . '';
Cordialement
Sylvain
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 17:03
12 mai 2008 à 17:03
J'ai essayé le premier code et rien ne changeait par contre dans le deuxième le nombre de point passait bien à 3 ! Je vais essayer de réfléchir à comment modifier cette ligne.
Cordialement
Sylvain
Cordialement
Sylvain
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
12 mai 2008 à 17:09
12 mai 2008 à 17:09
Oui en fait c'est tout con mais j'y ai pensé que avant d'envoyer le dernier message : vu que tes points sont des chiffres (INT) tu ne dois pas mettre de guillemets sinon ce n'est pas considéré comme un INT et donc pas mis à jour.
Et donc normalement cela devrait fonctionner :
Tout ça pour ça... Je suis vraiment désolé de ne pas y avoir pensé plus tôt
Et donc normalement cela devrait fonctionner :
<?php session_start(); // Aller chercher les configurations My SQL et verifier l'identite de la personne connectée require_once('config.php'); require_once('verifications.php'); // Récupération du nombre de points $sql = mysql_query("SELECT points FROM nom_de_ta_table WHERE id='$id'"); $result = mysql_fetch_array($sql) or die(mysql_error()); $points = $result[0]; // Calcul des points $pointfin = $points+0.05; // Operation mysql_query("UPDATE membres SET points = $pointfin WHERE id='$id'") or die ('Erreur : '.mysql_error()); // Rappel le nombre de points echo'<br/>Vous avez '. $pointfin .' points'; ?>
Tout ça pour ça... Je suis vraiment désolé de ne pas y avoir pensé plus tôt
TLLwebtv
Messages postés
59
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2008
11
12 mai 2008 à 17:14
12 mai 2008 à 17:14
Le code ne marche pas cependant quand je fais gagner 1 point à l'utilisateur ça marche !.
Le problème vient donc du 0.05 point. Il ne doit pas aimer les virgules mais le problème c'est que je suis obligé d'utiliser des virgules sinon ça fait beaucoup trop de points et puis ça m'empêche de proposer certains services qui ne font pas gagner beaucoup de points.
As-tu une solution ?
Merci beaucoup pour toute cette aide, grâce à toi j'ai presque fini mon site de jeux gratuits; il ne me restera plus qu'à sécurisé ma page gain.php et ajouter quelques fonctions.
Cordialement
Sylvain
Le problème vient donc du 0.05 point. Il ne doit pas aimer les virgules mais le problème c'est que je suis obligé d'utiliser des virgules sinon ça fait beaucoup trop de points et puis ça m'empêche de proposer certains services qui ne font pas gagner beaucoup de points.
As-tu une solution ?
Merci beaucoup pour toute cette aide, grâce à toi j'ai presque fini mon site de jeux gratuits; il ne me restera plus qu'à sécurisé ma page gain.php et ajouter quelques fonctions.
Cordialement
Sylvain