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 :

Présentation des données


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut Présentation des données
    Bonsoir.

    Je sais que le titre n'est pas clair mais je ne savais pas vraiment comment résumer mon problème.
    Je vais essayer d'expliquer le plus clairement possible.

    J'ai fait un script de "missions" formées d'étapes.
    J'ai donc une table "missions" et une table "etapes" ayant un champ "id_mission".

    Un exemple sera plus parlant pour commencer.
    - J'ai 1 mission composée de 3 étapes.
    - Pour l'étape n°1 je dois aller au point A.
    - Pour l'étape n°2 je dois aller au point B et en plus avoir l'objet X.
    - Pour l'étape n°2 je dois aller au point B, avoir l'objet X et avoir 200€.

    Si je n'avais comme condition que "aller à un point" j'aurais juste mis un champ "position" mais avec cet exemple on voit que j'ai besoin de faire un SELECT sur les tables "users" (position, argent) et "inventaire" (objet).

    A l'heure actuelle je fais un beau truc de brute en insérant directement les requêtes dans un champs "conditions" de ma table "etapes" et en plus d'être moche c'est pas pratique mais je ne trouve pas de solution.

    Quelqu'un aurait-il déjà eu un problème similaire ou aurait un début de piste ?

    Merci.

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    dans ta table étape tu rajoute un champs pour objet et un champs pour utilisateurs qui sont des clé étrangères (id user et id objet) qui peuvent être null, t'as plus qu'à faire une jointure...après sans le mcd je ne suis pas sur de répondre à ta question...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Merci de ta réponse.

    Dans mon cas cela ne va pas être possible.
    J'ai 3 types d'objets donc il me faudrait un id_objet et un id_type.

    A la rigueur ça pourrait marcher mais si j'ai besoin de 2 objets ou plus ? Il faudrait que je sépare les valeurs par des virgules et que j'associe tous les id_objet avec les bons id_type.
    Même si j'aime pas trop cette solution je pourrais m'en contenter.

    Comment faire pour demander la position X et en même temps la somme d'argent Y ?
    L'autre inconvénient est que si je rajoute une condition je dois modifier les champs :/

  4. #4
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    j'ai du mal à cerner ton problème sans détails...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    J'avoue que je ne vois pas trop comment l'expliquer.

    Tu ne comprends pas quoi ?

    Ce qu'il faut savoir c'est que je dois pouvoir tester n'importe quel champ de n'importe quelle table.

    Je dois pouvoir tester le champ "position", le champ "argent" de la table "users" mais peut-être que demain j'aurai besoin de tester le champ "groupe".

  6. #6
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    t'as pas un mcd ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Je n'en n'ai pas sous la main et à dire vrai il n'y en a pas besoin.

    Il faut que je puisse tester n'importe quel champ de n'importe quelle table.

  8. #8
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Tu peux créer les tables :
    - condition
    - type_condition
    - etape_condition

    Condition contiendrait les champs :
    - id_condition : clé primaire
    - valeur : (Coordonée de point, prix, ce que tu veux)
    - id_type : (clé étrangère de type_condition)

    type_condition contiendrait les champs :
    - id_type : clé_primaire
    - valeur : type de condition (Argent, Etape,...)

    Etape_condition contiendrait les champs :
    - id_etape : clé étrangère d'une étape
    - id_condition : clé étrangère d'une condition

    Cela te permettrait d'avoir autant de condition que tu veux par étape de n'importe quel type.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    En voilà une solution qu'elle est bonne et dont j'étais à des milles de trouver.

    Il va juste falloir que je la mette en pratique pour bien m'en imprégner

    Merci beaucoup Marc3001

  10. #10
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par vorace Voir le message
    t'as pas un mcd ?
    Citation Envoyé par p4ndore Voir le message
    Je n'en n'ai pas sous la main et à dire vrai il n'y en a pas besoin.
    C'est sans doute là que ce situe le premier problème !
    C'est une grosse erreur d'implanter une BDD un tant soit peu complexe sans avoir modélisé les données en se basant sur des règles de gestion claires.

    Pour apprendre à modéliser les données, regarde le cours de SQLPro.
    Si tu as besoin d'aide pour la modélisation, adresse-toi au forum Schéma.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 92
    Par défaut
    Désolé la fin de ma phrase est incomplète

    "Il n'y en a pas besoin pour cet exemple"

    Mais je te remercie pour les liens

    Je voulais que cela fonctionne sans connaître les données à l'avance.

    Pour le moment je suis en train d'adapter la solution de Marc3001.
    Si tout fonctionne bien je passe en RESOLU

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

Discussions similaires

  1. Problème de présentation des données sous forme d'un tableau HTML
    Par LaurentDRE dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/08/2008, 21h49
  2. Présentation des données sur JSP -> Servlet ou JavaBean ?
    Par tiamat dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 15/08/2007, 19h00
  3. Présentation des données
    Par schdam dans le forum Modélisation
    Réponses: 3
    Dernier message: 21/06/2007, 12h17
  4. Réponses: 2
    Dernier message: 15/05/2007, 12h38
  5. Réponses: 2
    Dernier message: 19/01/2007, 07h00

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