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 :

Problème avec UPDATE [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Par défaut Problème avec UPDATE
    Bonjour,

    Alors le problème c'est que l'acheteur gagne le prix de l'objet qui l'as acheter, alors que normalement, il devrait le perdre.

    Exemple : Je vend un objet à 10€, puis je l’achète avec le même compte, donc je devrait avoir la même somme qu'avant. Et bien non, mon argent augmente de 10€.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req = mysql_query('SELECT * FROM marche WHERE id_marche="'.$_GET['acheter_item'].'" ');
    $dn = mysql_fetch_array($req);
    if ($dn['id_acheteur'] == $data_membre['id']) {
    mysql_query("UPDATE accounts SET `or` = `or` - '".$dn['prix']."' WHERE id = '".$dn['id_acheteur']."' ") or die (mysql_error());
    } 
    elseif ($dn['id_vendeur'] == $data_membre['id']) {
    mysql_query("UPDATE accounts SET `or` = `or` + '".$dn['prix']."' WHERE id = '".$dn['id_vendeur']."' ");
    }

    Merci,

  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 as fais un if/elseif donc tu n'as qu'un seul des deux cas qui est traité.

    Tu peux tout faire en une seule requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql . 'UPDATE marche
    JOIN accounts as acheteur ON marche.id_acheteur = acheteur.id
    JOIN accounts as vendeur ON marche.id_vendeur = vendeur.id
    SET acheteur.or = acheteur.or - marche.prix,
    vendeur.or = vendeur.or + marche.prix,
    WHERE id_marche=' . intval($_GET['acheter_item']);
    et securise tes requêtes sinon tes joueurs vont se faire un plaisir de s'ajouter de l'or a foison.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Par défaut
    Merci, mais le problème c'est que je veut modifier l'or qu'il ont dans accounts, donc il faut que je mette UPDATE accounts, non?

  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
    Tu as testé ma requête et elle ne fonctionne pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Par défaut
    Elle rajoute le prix à l'acheteur en fait et n'augmente pas celle du vendeur.

  6. #6
    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
    Cette requête est pourtant bonne (a part une virgule qui se ballade).
    Montre nous ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    UPDATE marche
    JOIN accounts as acheteur ON marche.id_acheteur = acheteur.id
    JOIN accounts as vendeur ON marche.id_vendeur = vendeur.id
    SET acheteur.or = acheteur.or - marche.prix,
    vendeur.or = vendeur.or + marche.prix
    WHERE id_marche= '".$_GET['acheter_item']."' ")

    Oui en fait ça marche, mais le problème c'est que si un membre vend un objet, puis qu'il achete cette objet, normalement il sera considéré comme vendeur et acheteur, mais la il est considéré juste comme vendeur, donc il gagne de l'argent sans en dépensé.

    Merci de m'avoir aidé en tout cas

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Euh... l'utilisateur se vend l'objet à lui-même ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Par défaut
    Ouais c'est vrai que c'est un peu con.. je vais essayez d'arrangez ça pour ne pas qu'il achète les objets vendus par lui même.

  10. #10
    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
    Par contre je ne sais pas pourquoi la requête ne fonctionne pas dans ce cas là

    Quelqu'un pourrait expliquer le fonctionnement SQL ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Qu'il puisse acheter plus tard un objet qu'il a vendu, c'est possible, mais il faut que ce soit dans une vente différente de la 1ere fois.
    Genre :
    1) utilisateur -> marchant
    2) marchant -> utilisateur

    @sabotage : il se passe quoi quand dans une même requête on essaye de mettre à jour une colonne de la même ligne, via deux jointures différents ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [Access2003] Problème avec UPDATE
    Par PhRey dans le forum Langage SQL
    Réponses: 12
    Dernier message: 15/01/2007, 16h22
  2. Problème avec "update" du code ASP
    Par ocean_prince11 dans le forum ASP
    Réponses: 14
    Dernier message: 24/11/2006, 19h56
  3. problème avec update dans h:datatable
    Par rarrou dans le forum JSF
    Réponses: 1
    Dernier message: 03/11/2006, 16h22
  4. problème avec update
    Par chingo dans le forum Requêtes
    Réponses: 7
    Dernier message: 15/10/2006, 00h16
  5. [MySQL] Problème avec UPDATE
    Par oim dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 22/04/2006, 11h12

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