IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

calcul de points [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut calcul de points
    Bonjour,
    J'ais un soucis avec la sources suivante car je voudrais qu'elle ajoute 50 points au membres qui la visite et en meme temp ajouté 250 points a l'id "1" malheuresement cela ne fonctionne pas elle n'ajoute pas les 50 points et encore pire elle efface les points de l'id "1" pour lui donner la valeur de 250.
    Si quelqu'un aurait une explication pour me permettre d'avancer sa serait sympa .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    <? include('header.php'); ?>
     
    <?php include('config.php');
    // Récupération du nombre de points
    $sql = ("SELECT visits FROM tb_users WHERE id='$id'");
    $result = mysql_query($sql) or die (mysql_error());
    $points = $result[0];
    // Calcul des points
    $pointfin = $points+50;
    // Operation
    mysql_query("UPDATE tb_users SET visits = $pointfin WHERE id='$id'") or die ('Erreur : '.mysql_error());
    mysql_query("UPDATE tb_users SET visits = $points+250 WHERE id='1'") or die ('Erreur : '.mysql_error());
    // Rappel le nombre de points
    echo'<br/>Vous avez reçu '. $pointfin .' points concour';
    ?>
    <? include('footer.php'); ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu confonds les champs mysql et les variables php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE tb_users SET visits = visits +250 WHERE id='1'")
    Et il manque une étape dans ta requete au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query($sql) or die (mysql_error());
    $row = mysql_fetch_row($result);
    $points = $row[0];
    Tu n'as pas besoin d'encadrer tes valeurs d'id : ce sont des champs numeriques.


    Et sinon dans le code que tu montres, $id n'est pas défini.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    J'ais modifié le script suivant mais il n'ajoute toujour pas les 50 points aux membre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <? include('header.php'); ?>
     
    <?php include('config.php');
    // Récupération du nombre de points
    $id = ("SELECT id FROM tb_users");
    $sql = ("SELECT visits FROM tb_users WHERE id='$id'");
    $result = mysql_query($sql) or die (mysql_error());
    $row = mysql_fetch_row($result);
    $points = $row[0];
    // Calcul des points
    $pointfin = $points+50;
    // Operation
    mysql_query("UPDATE tb_users SET visits = $pointfin WHERE id='$id'") or die ('Erreur : '.mysql_error());
    mysql_query("UPDATE tb_users SET visits = visits +250 WHERE id='1'");
    // Rappel le nombre de points
    echo'<br/>Vous avez reçu '. $pointfin .' points concour';
    ?>
    <? include('footer.php'); ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $id doit evidemment etre un numero d'id existant dans ta base.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Oui je l'ais bien compris mais justement c'est l'id du membres qui est conecté a cette page que je n'arrive pas a récupérer.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,


    Le fait d'écrire tes requêtes de cette manière implique que ton champ id dans la table tb_users soit de type caractère (varchar ou autre de ce style)

    $sql = ("SELECT visits FROM tb_users WHERE id='$id'");

    mysql_query("UPDATE tb_users SET visits = $pointfin WHERE id='$id'") or die ('Erreur : '.mysql_error());
    mysql_query("UPDATE tb_users SET visits = visits +250 WHERE id='1'");
    Si ton champ id est de type INTEGER dans la table tb_users de données, il faudra écrire tes requêtes sans les ' '

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Quand je retire les guillemets sa m'ecris .

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM tb_users WHERE id=' at line 1

    Voici a nouveau le code concerné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <? include('header.php'); ?>
     
    <?php include('config.php');
    // Récupération du nombre de points
    $id = ("SELECT id FROM tb_users WHERE id= $id ");
    $sql = ("SELECT visits FROM tb_users WHERE id= $id ");
    $result = mysql_query($sql) or die (mysql_error());
    $row = mysql_fetch_row($result);
    $points = $row[0];
    // Calcul des points
    $pointfin = $points+50;
    // Operation
    mysql_query("UPDATE tb_users SET visits = $pointfin WHERE id= $id ") or die ('Erreur : '.mysql_error());
    mysql_query("UPDATE tb_users SET visits = visits +250 WHERE id= 1 ");
    // Rappel le nombre de points
    echo'<br/>Vous avez reçu '. $pointfin .' points concour';
    ?>
    <? include('footer.php'); ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    1) Fournis les types des champs de ta table tb_users!


    2) via quelle moyen tu affectes une valeur à ta variable $id?
    Je ne vois aucune partie de code assignant à ta variable la valeur de l'id récupéré.

    3) Pour voir ce qu'il se passe, tu peux faire:

    un echo de ta requête -> $requete = "select * ....";
    echo $requete;


    un echo de ta variable $id -> echo "valeur de \$id" . $id;

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est normal que cela te mette une erreur sans les guillemets puisque tu n'a pas défini $id.

    c'est l'id du membres qui est conecté a cette page que je n'arrive pas a récupérer.
    comment se passe la connexion alors ?
    tu entregistres peut etre l'id en session ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Le type du champ pour id est int(11) pour visits int(150)
    J'ais essayé avec session_start() ( code ci-dessous ) cela fonctionne les points sont bien crédités mais j'ais cette erreur :

    Il est fort possible que j'ais mal placé session_start()

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/b/a/n/bankokash/www/header.php:10) in /home/b/a/n/bankokash/www/test.php on line 7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <? include('header.php'); ?>
     
     
     
    <?php include('config.php');
    // Récupération du nombre de points
    $id = session_start();
    $sql = ("SELECT visits FROM tb_users WHERE id= $id ");
    $result = mysql_query($sql) or die (mysql_error());
    $row = mysql_fetch_row($result);
    $points = $row[0];
    // Calcul des points
    $pointfin = $points+50;
    // Operation
    mysql_query("UPDATE tb_users SET visits = $pointfin WHERE id= $id ") or die ('Erreur : '.mysql_error());
    mysql_query("UPDATE tb_users SET visits = visits +250 WHERE id= 1 ");
    // Rappel le nombre de points
    echo'<br/>Vous avez reçu '. $pointfin .' points concour';
    ?>
    <? include('footer.php'); ?>

  11. #11
    Invité
    Invité(e)
    Par défaut
    Le problème vient de ce que tu mets dans ta variable $id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $id = sessiont_start();
    bool session_start ( void )
    la fonctio session_start() te renvoie un booléen vrai ou faux (1 ou 0)

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    session_start() ca retourne TRUE ca ne retourne pas un id de session donc ca me semble etrage que ton code fonctionne normalement.

    ca m'ettonerait aussi que l'id de ton user ce soit un id de session PHP.

    En resumé je dirais qu'il ne sert a rien d'ecrire des trucs au hasard pour voir ce que cela peut donner.
    tes "users" sont referencés dans une table avec un champ "id".
    quand ils se connectent, est-ce que cet id est enregistré dans la session ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Je veux juste récupérer l'id du membre conecté a cette page pour lui créditer les points.

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    cet id c'est bien toi qui l'insere dans la base donc tu dois bien savoir d'ou il vient et ce que tu en fais quand l'utilisateur se connecte.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Oui dès qu'ils sont conecter leur session est active et avec les cookies ils ont pas besoin de ce reconnecter a chaque visite sur le site sauf si il vide leurs cookies.

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    et le champ id de la base c'est quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    C'est l'id du membre.

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    est-ce qu'il est stocké dans la session PHP ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    oui

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    et bien $id = $_SESSION['id'] en gros
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Calcul de points sur un cone
    Par lenoil dans le forum Mathématiques
    Réponses: 1
    Dernier message: 21/03/2008, 15h44
  2. Calculs de points fixes
    Par iamsebfont dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/10/2007, 15h45
  3. Calculer les points
    Par ameno_123 dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2007, 22h08
  4. calcul coordonnées point
    Par diambu dans le forum Langage
    Réponses: 15
    Dernier message: 23/07/2007, 16h25
  5. calculs des points
    Par rabi dans le forum OpenGL
    Réponses: 11
    Dernier message: 12/02/2004, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo