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

MySQL Discussion :

test de jointure ou intersection entre 3 tables


Sujet :

MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut test de jointure ou intersection entre 3 tables
    Bonsoir, je veux tester si l'identifiant est de catégorie utilisateur alors il ne peut récupérer que les donnés propres à lui
    sachant que "name" dans 'prestation' prend le "name" dans 'project' et "affectation" dans 'project' prend "pseudo" dans 'inscription'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($category == "Utilisateur")
    		$req="(SELECT * FROM prestation WHERE $where ORDER BY $order_by $limit) INTERSECT (SELECT affectation FROM project)  INTERSECT (SELECT pseudo FROM inscription where category = '".$category"') ";
    	 else
    		$req="SELECT * FROM prestation WHERE $where ORDER BY $order_by $limit";
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Structure de la table `inscription`
    --
     
    CREATE TABLE IF NOT EXISTS `inscription` (
      `firstname` varchar(25) NOT NULL,
      `lastname` varchar(25) NOT NULL,
      `pseudo` varchar(15) NOT NULL,
      `email` varchar(50) NOT NULL,
      `password` text NOT NULL,
      `phone` varchar(50) NOT NULL,
      `skype` varchar(25) NOT NULL,
      `category` varchar(20) NOT NULL,
      `birthday` date NOT NULL,
      `inscription` datetime NOT NULL,
      `actif` tinyint(1) NOT NULL DEFAULT '0'
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    Structure de la table `project`
    --
     
    CREATE TABLE IF NOT EXISTS `project` (
      `name` varchar(20) NOT NULL,
      `encoDate` date NOT NULL,
      `dateStart` date NOT NULL,
      `nbrDay` int(5) NOT NULL,
      `dateEnd` date NOT NULL,
      `depassement` int(5) NOT NULL,
      `description` text NOT NULL,
      `priority` int(5) NOT NULL,
      `affectation` varchar(20) NOT NULL,
      `clientName` varchar(20) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
     
    Structure de la table `prestation`
    --
     
    CREATE TABLE IF NOT EXISTS `prestation` (
      `date` date NOT NULL,
      `client` varchar(50) COLLATE utf8_bin NOT NULL,
      `name` varchar(20) COLLATE utf8_bin NOT NULL,
      `tache` varchar(20) COLLATE utf8_bin NOT NULL,
      `debut` time NOT NULL,
      `fin` time NOT NULL,
      `rapport` text COLLATE utf8_bin NOT NULL,
      `selection` varchar(50) COLLATE utf8_bin NOT NULL,
      `note` varchar(5) COLLATE utf8_bin NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    En fait je vais le récupérer afin d'utiliser les variables pour afficher les statistiques projet/utilisateur

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
    	include 'db.inc.php';
     
    		$email = $_SESSION['email'];
    		$req="select i.email, p.name from inscription i, project p where i.pseudo= p.affectation and i.email = '".$email."'";
    		$conn = $connexion->prepare($req);
    		$conn->execute();
     
    	  $req1="select name from prestation where selection = 'Analyse'  and name='".$conn['name']."' order by note";
    	  $req2="select name from prestation where selection = 'Recherche' and name='".$conn['name']."'  order by note";
    	  $req3="select name from prestation where selection = 'Développement'  and name='".$conn['name']."'  order by note";
    	  $req4="select name from prestation where selection = 'Débogage'    and name='".$conn['name']."' order by note";
     
    		$conn1 = $connexion->prepare($req1);
    		$conn1->execute();
    		$d = $conn1->rowCount();
    		$conn2 = $connexion->prepare($req2);
    		$conn2->execute();
    		$r = $conn2->rowCount();
    		$conn3 = $connexion->prepare($req3);
    		$conn3->execute();
    		$c = $conn3->rowCount();
    		$conn4 = $connexion->prepare($req4);
    		$conn4->execute();
    		$u = $conn4->rowCount();
     
    ?>


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
          google.load("visualization", "1", {packages:["corechart"]});
          google.setOnLoadCallback(drawChart);
     
    	  function drawChart() {
     
            var data = google.visualization.arrayToDataTable( <?php echo "[
              ['action', 'Note'],
              ['Analyse',     ".$d."],
              ['Recherche',     ".$r."],
              ['Développement',  ".$c."],
              ['Débogage', ".$u."]"; ?>
     
            ]);
     
            var options = {
              title: 'Projet / utilsateur'
            };
     
            var chart = new google.visualization.PieChart(document.getElementById('piechart'));
     
            chart.draw(data, options);
          }
        </script>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div class="container-fluid" id="result">
    			<h1 class="col-xs-12 col-md-4 col-md-offset-4 center">Statistique</h1>
    			<div class="col-xs-12 col-md-12">
     
    			<div id="piechart" style="width: 900px; height: 500px;"></div>
     
    			</div>
            </div>

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

Discussions similaires

  1. Intersection entre deux tables
    Par khayem dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/12/2011, 17h17
  2. [SQL] Intersection entre deux tables
    Par Al3x dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/12/2007, 16h46
  3. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50
  4. [jointure]requete possible de double jointure entre 2 tables
    Par akira_le_gaucher dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2004, 15h03
  5. Jointure entre 2 tables et OR
    Par PyRoFlo dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/02/2004, 18h42

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