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 :

Php & requete SQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 25
    Par défaut Php & requete SQL
    Bonjour a tous !
    Voila j'ai un nouveau problème pour mon petit projet
    http://www.developpez.net/forums/d12...-rajout-point/

    J’envoie une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE members SET points = points + 1
    Pour rajouter 1 point.

    Le problème est que:
    J'ai mon utilisateur 1 qui a 10 points
    J'ai mon utilisateur 2 qui a 10 points

    quand je click sur le bouton ou il y a la requête pour rajouter 1 point.

    J'ai mon utilisateur 1 qui a 11 points
    J'ai mon utilisateur 2 qui a 11 points

    or , il faudrait si je suis connecté a mon utilisateur 1 que
    mon utilisateur 1 ai 11 points
    mon utilisateur 2 reste a 10 points
    (que se soit , que l'utilisateur connecté qui augmente ces points)

    J'ai tenter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE members SET points = points + 1 WHERE id = $_SESSION[id]
    mais sa n'a pas marcher.

    Un peu d'aide ferait plaisir

    Merci a tous.

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Tu n'as pas donné de code concernant les informations que tu as à ta disposition, je ne sais pas à quoi correspond l'id stocké en session, mais si au moment de la connexion tu assignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['id'] = SELECT id FROM members WHERE members .nom = $nom AND members.hash = hash
    Et qu'ensuite tu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE members SET points = points + 1 WHERE id = $_SESSION['id']
    Cela devrait fonctionner. Il faut bien entendu associer la valeur retournée par la DB et pas la chaine de caractère de la requête. Attention à ne pas oublier session_start() avant d'utiliser les variables de session. Utilise var_dump($_SESSION['id']); pour t'assurer que la variable vaut vraiment ce que tu penses.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 25
    Par défaut
    l'ID en question correspond a l'id utilisateur
    Ma base de donnée est comme ceci:
    Table: Members
    Colonne: ID/username/firstname/lastname/password/ip/points

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    Ce qui serait utile c'est le code php que tu utilise pour authentifier l'utilisateur et créer $_SESSION['id']

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 25
    Par défaut
    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
    <?php
    session_start();
    require_once("connect.php");
     
    // Check his status.
    if (!empty($_SESSION[username])) // he got it.
    {
    	echo "You are currently logged in, <b>$_SESSION[username]</b>.
    	";
    	$data=mysql_fetch_array (mysql_query("SELECT * FROM  members"));  
    	echo $data['points']; 
    	echo "<a href=\"points.php\"><img src=\"http://www.phpsc.com/gdi/um/458493.cs.jpg\">confirmer</a>.
    	";
    }
    else // bad info.
    {
    	echo "You are currently <b>NOT</b> logged in.";
    }
     
    ?>
    Voila mon code pour ma page members.php
    Un click sur la page points.php doit rajouter un point sur la page membre.

    la page points.php est comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    session_start();
    require_once("connect.php");
    $sql=mysql_query("UPDATE members SET points = points + 1");
    ?>
    mais ceci ajoute 1 point a tout les utilisateur , et non a l'utilisateur connecté.

    Merci

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    quelle est la partie de ton code qui permet de mettre en session les données d'un utilisateur(comme l'id)?
    où est le code qui permet d'authentifier les utilisateurs?

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 28
    Par défaut
    mais ceci ajoute 1 point a tout les utilisateur , et non a l'utilisateur connecté.
    Ce qui est normal, puisque tu lui dit de remplacer "points" par "points+1" dans la table "members". Il va dans "members", il trouve une case "points" à chaque ligne, il change chaque ligne.

    Si tu veux qu'il change "points" par "points+1" pour l'utilisateur connecté, et si tu enregistre de toutes façons le nom de l'utilisateur, tu peux lui dire de changer "points" par "points+1" quand l'utilisateur s'appelle $_SESSION[username].
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=mysql_query("UPDATE members SET points = points + 1 WHERE username = '" . $_SESSION[username] . "' );
    (Plus avancé: Ce n'est pas optimisé, car si tu as beaucoup d'utilisateur il doit lire le nom de chacun pour savoir s'il doit changer "points" ou non. Il est plus efficace de stocker l'ID que l'username, il est plus facile de comparer un chiffre à une chaine de caractère. Mais tu ne verras aucune différence avec moins de 10'000 utilisateurs dans ta table.)

    Attention, dans un même ordre d'idée,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data=mysql_fetch_array (mysql_query("SELECT * FROM  members"));
    Sélectionne toute la table et pas uniquement l'utilisateur. Fais un
    pour t'en convaincre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] recuperation variable php pour requete sql
    Par noche29 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2011, 14h36
  2. [MySQL] PHP et requetes SQL
    Par mjs21 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 13/06/2008, 14h39
  3. [SQL] Menu deroulant PHP dynamique requete SQL
    Par pit2121 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/12/2007, 16h16
  4. [MySQL] php et requete sql mal executée
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/04/2007, 12h16
  5. [Tableaux] affichage tableau php apres requete sql count
    Par heteroclite dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2006, 20h53

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