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 :

Valeurs sur bdd


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2024
    Messages : 13
    Par défaut Valeurs sur bdd
    Bonsoir à tous, est il possible dans une table sql de définir un choix à une valeur svp exemple concret:

    Champ choix: Valeurs:
    A,B,C 1,2,3

    Si l utilisateur choisi la réponse B, dans le champ « valeurs » cela enregistre « 2 »

    Merci d avance à tous

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Tu peux faire cela avec 2 tables et une dépendance fonctionnelle / clef étrangère :

    Table constructeur (id, nom)
    Table voiture (id, nom, constructeur_id)

    constructeur
    --------------
    id=1 nom=Peugeot
    id=2 nom=Renault
    id=3 nom=Citroën
    insert into voiture
    set
        nom = 'Alpine',
        constructeur_id = (select all id from constructeur where nom = 'Renault')
    ;
    La table voiture vaudra :

    id=1 nom=Alpine constructeur_id=2

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2024
    Messages : 13
    Par défaut
    Visiblement je n’y arrive pas, et vu mes lacunes en sql, peut on être plus précis svp?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 599
    Billets dans le blog
    10
    Par défaut
    De ce que je comprends du besoin, la réponse ici est plutôt l'utilisation d'un CASE :

    Code SQL : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    create table T1
          (  T1C1   smallint primary key
           , T1C2   char(1)  not null
           , T1C3   smallint not null
          )
    ;
    insert into T1 (T1C1, T1C2, T1C3)
    values (   1
            , 'A'
            , case when T1C2 = 'A' then 1
                   when T1C2 = 'B' then 2
                   else 3
              end
           )
         , (   2
            , 'C'
            , case when T1C2 = 'A' then 1
                   when T1C2 = 'B' then 2
                   else 3
              end
           )  
         , (   3
            , 'A'
            , case when T1C2 = 'A' then 1
                   when T1C2 = 'B' then 2
                   else 3
              end
           )  
         , (   4
            , 'B'
            , case when T1C2 = 'A' then 1
                   when T1C2 = 'B' then 2
                   else 3
              end
           )  
    ;

    Résultat :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from T1
    ;

    Solution applicable seulement s'il n'y a que peu de valeurs possibles.
    Mais en ce cas, il y a une redondance dans la table, quel est le but de la manœuvre ?

    Nom : Sans titre.png
Affichages : 157
Taille : 1,5 Ko

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Mensiorsoca Voir le message
    Visiblement je n’y arrive pas, et vu mes lacunes en sql, peut on être plus précis svp?
    Pas sans savoir précisément ce que tu veux au final (j'image que ton exemple n'est pas un cas d'usage réel).
    Sinon voir la réponse d'escartefigue

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2024
    Messages : 13
    Par défaut Re
    Le but est:

    Un technicien effectue des installations +/- 8 par jour, nous avons au total 20 techniciens… nous voulons qu’il entre son matériel installé via un formulaire, dans le formulaire nous devons absolument récupérer le nom du matériel placer et non pas une valeur…. En revanche j’ai besoin d attribuer une valeur au matériel pour ensuite créer une barre de progression sur 100 points

    Le but étant de dire au technicien en fin de journée tu as eu 90/100

    J’espère avoir été compréhensible dans mon texte. Je vous remercie pour votre aide

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 599
    Billets dans le blog
    10
    Par défaut
    En ce cas il faut une table matériel (PK soulignée, contraintes unique en gras, FK suffixées #) :
    MA_MATERIEL (MA_ident, MA_reference, MA_num_serie, MA_date_fab, MA_valeur...)

    Une table Technicien :
    TE_TECHNICIEN(TE_ident, TE_matricule, TE_nom, TE_prenom...)

    Une table intervention, une intervention est faite par un technicien à une date, c'est donc une table associative dont la PK est composée :
    IT_INTERV (IT_date, TE_ident#, MA_ident#, IT_duree, ...)

    Et en fin de journée, on recherche les interventions de chaque technicien pour la journée, et on cumule les valeurs des matériels concernés.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/10/2015, 10h35
  2. [MySQL] liste déroulante sur bdd récupération d'une valeur
    Par zeon71 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/10/2011, 15h42
  3. Réponses: 2
    Dernier message: 23/01/2006, 11h55
  4. Export Acces->Excel Requette sur bdd oracle
    Par cedrickb dans le forum Access
    Réponses: 2
    Dernier message: 31/12/2004, 14h27
  5. [Débutant] Tester une connection sur bdd
    Par lando dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/09/2003, 14h37

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