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 :

MySQL et concaténation


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut MySQL et concaténation
    Je voudrai recuperer le coefiicent des eleves selon leur serie pour pouvoir generer un bulletin de note depuis php.

    Voici les tables en liaison
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    `eleve` (
      `idEleve` int(11) NOT NULL AUTO_INCREMENT,
      `prenom_eleve` text NOT NULL,
      `nom_eleve` text NOT NULL,
      `serie_eleve` varchar(10) NOT NULL,
      `classe_eleve` varchar(10) NOT NULL,
      `idParent` int(5) NOT NULL,
      `sexe` varchar(2) DEFAULT NULL,
      `telEleve` varchar(12) DEFAULT NULL,
      `mailEleve` varchar(10) DEFAULT NULL,
      `dateInscription` date DEFAULT NULL,
      `dateNaissance` date DEFAULT NULL,
      `lieuNaissance` varchar(10) DEFAULT NULL,
      `nationalite` varchar(10) DEFAULT NULL,
      `password` varchar(10) DEFAULT NULL,
      `session` varchar(10) DEFAULT NULL,
      `photo` varchar(10) DEFAULT NULL,
      PRIMARY KEY (`idEleve`),
      UNIQUE KEY `classe_eleve` (`classe_eleve`),
      UNIQUE KEY `idEleve` (`idEleve`),
      KEY `idParent` (`idParent`),
      KEY `serie_eleve` (`serie_eleve`),
      CONSTRAINT `classe_eleve` FOREIGN KEY (`classe_eleve`) REFERENCES `classe` (`classe`),
      CONSTRAINT `idParent` FOREIGN KEY (`idParent`) REFERENCES `parent` (`id_parent`),
      CONSTRAINT `serie_eleve` FOREIGN KEY (`serie_eleve`) REFERENCES `serie` (`nom_Serie`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
     
    `notes` (
      `idNote` int(11) NOT NULL AUTO_INCREMENT,
      `eleve` int(11) NOT NULL,
      `matiere` varchar(10) NOT NULL,
      `note1` float DEFAULT NULL,
      `note2` float DEFAULT NULL,
      `note3` float DEFAULT NULL,
      `compo1` float DEFAULT NULL,
      `semestre1` float DEFAULT NULL,
      `note4` float DEFAULT NULL,
      `note5` float DEFAULT NULL,
      `note6` float DEFAULT NULL,
      `compo2` float DEFAULT NULL,
      `semestre2` float DEFAULT NULL,
      PRIMARY KEY (`idNote`),
      KEY `eleve` (`eleve`),
      KEY `matiere` (`matiere`),
      CONSTRAINT `eleve` FOREIGN KEY (`eleve`) REFERENCES `eleve` (`idEleve`),
      CONSTRAINT `matieren` FOREIGN KEY (`matiere`) REFERENCES `matiere` (`nom_matiere`)
    ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;
     
    `coeficient` (
      `coef` int(11) NOT NULL,
      `matiere` varchar(10) NOT NULL,
      `serie` varchar(10) NOT NULL,
      `idcoef` int(5) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`idcoef`),
      KEY `matiere` (`matiere`),
      KEY `serie` (`serie`),
      CONSTRAINT `matiere` FOREIGN KEY (`matiere`) REFERENCES `matiere` (`nom_matiere`),
      CONSTRAINT `serie` FOREIGN KEY (`serie`) REFERENCES `serie` (`nom_Serie`)
    ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;

    Voici la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id=$_GET['id'];
    $req=mysql_query("SELECT  idEleve,notes.matiere,note1,note2,note3,compo1,coef
    	FROM notes,eleve,coeficient,serie WHERE
    	idEleve='$id' and eleve.idEleve=notes.eleve and coeficient.matiere=notes.matiere and eleve.serie_eleve=coeficient.serie")
    	or die ('Error '.mysql_error());
    dans ce cas de figure je peux recuperer les coefficients mais les matières sont en double sauf la premiere
    et si j'ajoute GROUP by matiere les matières ne sont plus doublées mais la première matière disparait

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser JOIN pour faire des jointures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    id=(int)$_GET['id'];
                $req=mysql_query("SELECT  idEleve, notes.matiere,note1,note2,note3,compo1,coef
    				  FROM eleve
    JOIN notes ON eleve.idEleve=notes.eleve
    JOIN matiere ON notes.matiere = matiere.id
    JOIN coeficient ON eleve.serie_eleve=coeficient.serie AND coeficient.matiere=notes.matiere
    WHERE idEleve='$id'")
    En faisant ainsi tu vois en plus clairement qu'il manquait des relations entre tes tables.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. concaténation de valeur dans une variable MySQL
    Par .TKrD. dans le forum SQL Procédural
    Réponses: 12
    Dernier message: 04/05/2009, 00h37
  2. [MySQL] Concaténation et Datediff
    Par Sancho91 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/10/2008, 13h11
  3. [MySQL] concaténation plusieurs données même champs d'une table MYSQL
    Par creative69 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/07/2008, 17h58
  4. concaténation de script et table mysql
    Par jim1 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/06/2008, 14h19
  5. Concaténation dans Mysql
    Par manapanu dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/02/2008, 23h14

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