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 :

Compare plusieurs valeurs dans une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Compare plusieurs valeurs dans une table
    Bonjour, j'ai un petit soucis de requête : j'ai une table "mesJeux" avec mes_jeux_id, card1, card2, card3, card4 et card5. Plusieurs enregistrement dans cette table.
    j'ai une autre table "mesCartes" avec mes_cartes_id, card1, card2, card3, card4 et card5.
    Ce que je veux faire est assez simple, je voudrais vérifier que mon jeu de carte (mes 5 cartes de la table mesCartes) existe ou pas dans la table mesJeux et s'il existe récupérer son ID.
    L'ordre des cartes n'est pas fixe c'est a dire que les valeurs 10,35,15,54,87 correspondent au même jeu que 87,35,15,54,10.

    j'ai essayé de faire
    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
    public function ifDeckExist($card1, $card2, $card3, $card4, $card5)
    {
    $sql = "SELECT mesJeux_id FROM mesJeux WHERE card1 IN (?,?,?,?,?)";
    $statement = $this->conn->prepare($sql);
    	if (!$statement)
    	throw new Exception($statement->error);
    $statement->bind_param("iiiii", $card1, $card2, $card3, $card4, $card5);
    $statement->execute();
    $statement->bind_result($mesJeux_id);
    $returnValue = array();
    while ($statement->fetch()) {
    $returnValue['id']=$mesJeux_id;	
    }
    return $returnValue;
    }
    mais ca ne marche pas, je ne sais pas si c'est le retour de variable qui ne va pas ou la syntaxe de ma requête.

    Merci de votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    vous ne comparez que card1, pas les autres. Si les cartes sont uniques, la requête suivante devrait fonctionner :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mesJeux_id FROM mesJeux WHERE card1 IN (?,?,?,?,?) AND card2 IN (?,?,?,?,?) AND card3 IN (?,?,?,?,?) AND card4 IN (?,?,?,?,?) AND card5 IN (?,?,?,?,?)
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 13
    Points
    13
    Par défaut exemple
    Merci christophe pour la réponse. Oui effectivement je ne compare qu'une seule carte c'était pour l'exemple. C'est pas tant à la création de la raquette que j'ai du mal mais à la récupération des données.
    avez vous une fonction complete ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Poouvez-vous préciser :
    Citation Envoyé par sylvayn Voir le message
    ca ne marche pas
    ...
    C'est pas tant à la création de la raquette que j'ai du mal mais à la récupération des données.
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 13
    Points
    13
    Par défaut j'ai l'impression que j'ai un problème avec le bind_param
    Merci christophe

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/11/2012, 11h26
  2. Creation de plusieurs records dans une table en fonction de la valeur
    Par miniil dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 27/10/2009, 13h40
  3. selectionner plusieurs valeurs dans une table
    Par xavier_log dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2009, 21h42
  4. Insertion valeure dans une table
    Par krfa1 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/03/2005, 10h50
  5. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38

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