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

Langage PHP Discussion :

PhpEcho : utilisation sophistiquée [POO]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut PhpEcho : utilisation sophistiquée
    Bonsoir,

    jusque là, j'avais une utilisation simple de PhpEcho (du genre, on fait un select * d'une table, puis FetchAll, et enfin on affiche avec PhpEcho le contenu de la table). Mon nouveau besoin est plus complexe. On a 2 tables : une table Users et une table Sites. La table Users contient une colonne id_site et la première colonne de la table Sites porte le même nom.

    La table Sites est toute simple :
    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
     
    DROP TABLE IF EXISTS `site`;
    CREATE TABLE IF NOT EXISTS `site` (
      `id_site` tinyint(2) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) COLLATE utf8_bin NOT NULL,
      `id_country` tinyint(2) NOT NULL,
      PRIMARY KEY (`id_site`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    ++++++++++++++++++++++++++++
    --
    -- Déchargement des données de la table `site`
    --
     
    INSERT INTO `site` (`id_site`, `name`, `id_country`) VALUES
    (1, '38TEC', 1),
    (2, 'PLM', 1),
    (3,'Frankin',3);

    La table Users un peu moins :
    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
    DROP TABLE IF EXISTS `users`;
    CREATE TABLE IF NOT EXISTS `users` (
      `sesa` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `lastname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `firstname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `sesa_manager` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `id_site` tinyint(2) NOT NULL,
      PRIMARY KEY (`sesa`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 
     
    --
    -- Déchargement des données de la table `users`
    --
     
    INSERT INTO `users` (`sesa`, `lastname`, `firstname`, `email`, `sesa_manager`, `id_site`) VALUES
    ('SESA13274', 'L--', 'M--', 'm-.l--@se.com', '', 3),
    ('SESA27384', 'S--', 'L--', 'l--.s--@se.com', 'SESA--', 2),
    ('SESA487755', 'B--', 'O--', 'o--.b--@se.com', 'SESA--', 2);
    Le besoin serait, pour chaque utilisateur enregistré dans la table Users d'afficher la valeur des 5 premières colonnes et d'afficher le name dans la table Sites identifié par la colonne id_site.
    Petit exemple : considérons le 2e enregistrement de la table Users (('SESA27384', 'S--', 'L--', 'l--.s--@se.com', 'SESA--', 2)). Il est clair que cet utilisateur appartient au site tel que id_site=2 donc PLM. La question est quelle est la requête SQL qui permettrait d'obtenir cette information ?
    J'ai bien la requête qui donnerait uniquement le nom du site : SELECT s.name FROM `site` s INNER JOIN `users` u ON u.id_site=s.id_site where sesa='SESA--'mais là, je sais pas faire...
    A noter qu'au démarrage de cette discussion, je pensais que mon souci était dans une bonne utilisation de PhpEcho mais je pense qu'il s'agit d'un pur problème de SQL.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    salut,

    effectivement ce n'est qu'un problème de SQL.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT u.*, s.name AS 'nom_site'
    FROM `users` u INNER JOIN `site` s ON u.id_site = s.id_site 
    WHERE u.`sesa` = 'SESA--'

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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