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 :

requête php Mysql


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 15
    Points : 9
    Points
    9
    Par défaut requête php Mysql
    Bonsoir
    J'ai une table TMA_taches
    Nom : Capture du 2020-01-22 22-18-54.png
Affichages : 132
Taille : 86,6 Ko

    Je fait une requête dessus sachant que l'array donne ceci

    [tache] => Array
    (
    [0] => 1-2
    [1] => 1-3
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    foreach ($tache as $val8 ) {
    	 echo "$val8 <br>"; 
    }       
     
         $reponse_A = $pdo->query("SELECT TMA_taches.CA, TMA_competences.E_C_de
    FROM  `TMA_taches`
    INNER JOIN TMA_competences
         ON TMA_taches.CA = TMA_competences.unite
        WHERE  TMA_taches.id_T='$val8'");
    Et la recherche ne se fait que sur le dernier array [1]=>1-3

    (Je fait une jointure avec une autre table TMA_competences pour afficher les compétences.E_C_de)

    Merci de votre aide par avance.

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut

    quand on voit dans une base de données des colonnes nommées : CA, CB, CC, c'est qu'il y a un problème de conception.
    Explique dans les grandes lignes ce que tu souhaites gérer.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Salut

    Cette table contient les id des taches = "id_T , les taches = "taches" qui correspondent à des Compétences que j'ai mis chacune dans une colonne CA CB CC.......
    Par exemple la tache id_T = 1-6 . tache= Rechercher des solutions techniques => aux compétences C2.1 (CA), C2.4 (CB) C3.1 (CC), C4.1 (CD), C4.8 (CE)


    Ces compétences sont dans une autre table "TMA_competences" avec les colonnes .
    "unite" = C.2.1 >>>>" E_C_de" = Choisir et adapter des solutions techniques.
    "unite" = C.2.4 >>>>" E_C_de" = Élaborer le processus de fabrication de pose ou de dépose.

    ect.......

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si j'ai bien compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $reponse_A = $pdo->query("SELECT TMA_taches.CA, TMA_competences.E_C_de
    	FROM `TMA_taches`
    	INNER JOIN TMA_competences
    		ON TMA_taches.CA = TMA_competences.unite
    	WHERE  TMA_taches.id_T IN (".implode(',',$tache).")");
    N.B. Cela suppose d'être sûr et certain de ce que contient $tache.
    Sinon, il est fortement conseillé de faire une requête préparée.

    [EDIT] Oups ! Comme ce sont des chaines de caractères (et non des numérique, comme souvent), il faut encadrer les valeur avec des '...' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reponse_A = $pdo->query("SELECT TMA_taches.CA, TMA_competences.E_C_de
    ...
    	WHERE  TMA_taches.id_T IN ('".implode('\',\'',$tache).")"');
    Dernière modification par Invité ; 24/01/2020 à 14h50.

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    ok, c'est ce qui me semblait. Tu devrais plutôt t'orienter vers ce genre de modèle :
    Nom : 2020-01-24_130228.jpg
Affichages : 106
Taille : 118,7 Ko
    Bref, t'orienter plus vers les jointures que les GROUP_CONCAT() ou les IN ()

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Tout d'abord un grand merci pour votre aide.

    J'ai changé les structures de mes tables: c'est maintenant plus logique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $reponse_B = $pdo->query("SELECT  TMA_competences.unite, TMA_competences.E_C_de, TMA_competences.E_C_de
    FROM  `TMA_taches`
    JOIN tache_competences
         ON TMA_taches.tache_id = tache_competences.ex_tache_id
    JOIN TMA_competences
    	ON  TMA_competences.competence_id = tache_competences.ex_competence_id
    	WHERE  TMA_taches.id_T IN ('".implode('\',\'',$tache)."')");
    J'ai juste corrigé le dernier WHERE de jreaux62 ou les ' étaient mal placé.

    Merci!

Discussions similaires

  1. Problème pour construire une requête PHP/MySql
    Par Lionel_aw dans le forum Langage
    Réponses: 11
    Dernier message: 22/02/2012, 11h51
  2. [PHP 4] problème requête php mysql
    Par webduweb dans le forum Langage
    Réponses: 6
    Dernier message: 16/02/2012, 11h27
  3. comment créer un array js à partir d'une requête PHP Mysql
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/08/2008, 23h29
  4. [AJAX] InlineMod - Ajax - Requêtes PHP-MySQL
    Par funkyy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/04/2008, 17h17
  5. [MySQL] pb de requête php /mysql
    Par digger dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/05/2007, 09h37

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