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 :

[SQL] affichage de tables différentes dans un même tableau


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut [SQL] affichage de tables différentes dans un même tableau
    Je voudrais afficher le contenu d'une deuxième table de le même tableau qui s'affiche déjà. Là pour le moment j'ai une colonne vide que je voudrais remplir avec les données se trouvant dans une autre table (j'ai idLibelle_data dans deux tables, et je voudrais afficher le nom qui correspond à cet id). Si vous pouviez m'aider, merci d'avance.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    <?php
    function ligneParDefaut($donnees)
    {
    $ligne = '';
     
        if (isset($_POST['donnees']))
        {
            if ($_POST['donnees'] == $donnees)
            {
                $ligne='selected="selected"';
            }
        }
    return $ligne;
    }
    ?>
     
     
        <head>
        <title>Consultation des donnees de production</title>
        <link rel="stylesheet" type="text/css" href="format.css">
        	<center><table>
                <tr bgcolor="#f4fbfd" border="#f4fbfd">
                <th width=33% height=80><center><img src="images/vihiers.jpg" width=536 height=160 style="border-color:#15735B" border = 3></center></th>
            </table></center>
        </head>
        		<br>
    			<hr width = 80%>
                <b><center><h1>CONSULTATION DES DONNEES</h1></center></b>
                <hr width = 80%>
                <br>  
                <br>
                <center>
                <FORM method="post">
    				Les donnees de production de la ligne :<BR><BR>
    			<SELECT name="donnees">
    				<OPTION value="Toutes les lignes de fabrication" <?php echo ligneParDefaut('Toutes les lignes de fabrication'); ?>>Toutes les lignes de fabrication</OPTION>
      				<OPTION value="Kidiboo" <?php echo ligneParDefaut('Kidiboo'); ?>>Kidiboo (1)</OPTION>
      				<OPTION value="St Moret" <?php echo ligneParDefaut('St Moret'); ?>>St Moret (2)</OPTION>
      				<OPTION value="Tartare" <?php echo ligneParDefaut('Tartare'); ?>>Tartare (3)</OPTION>
      				<OPTION value="Petit Louis" <?php echo ligneParDefaut('Petit Louis'); ?>>Petit Louis (4)</OPTION>
      				<OPTION value="Cric Crac" <?php echo ligneParDefaut('Cric Crac'); ?>>Cric Crac (5)</OPTION>
    			</SELECT>
    			<br><br><center><INPUT TYPE=SUBMIT VALUE="Valider"></center>
    			</FORM>
    			</center>  
     
     
     
    <?php
    if (isset($_POST['donnees']))
    {
    	$host = "ma_machine" ;
    	$user = "mon_user" ;
    	$passwd  = "mon_passwd" ;
    	$bdd = "ma_bdd" ;
     
    	mysql_connect($host , $user , $passwd) or die("Erreur de connexion au serveur");
     
    	mysql_select_db($bdd) or die("Erreur de connexion a la base de donnees");
     
    switch($donnees){
    	case "Toutes les lignes de fabrication"	:
    			$query_ligne = "SELECT idLibelle_Ligne_Fabrication,nom FROM Libelle_Ligne_Fabrication";
    			$result = mysql_query($query_ligne);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width="50%">N° Ligne Fabrication</th><th width="50%">Nom de la ligne</th>';
    			while($tableau = mysql_fetch_row($result)){
    				$ID_libelle_ligne = $tableau[0];
    				$Nom_ligne = $tableau[1];
    					echo "<tr><td><center>$ID_libelle_ligne</center></td><td><center>$Nom_ligne</center></td></tr>";
    			}
    			echo '</table></center>';
    			break ;	
     
    	case "Kidiboo" :
    			$query_kidiboo = "SELECT `idLigne_Fabrication` , `idLibelle_data` , `date` , `valeur` FROM `Data_journee` WHERE `idLigne_Fabrication` = 1 ORDER BY `idLibelle_data` ASC LIMIT 0, 300" AND "SELECT `nom_libelle` FROM `Libelle_data` " ;
    			$result = mysql_query($query_kidiboo);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=20%>N° Ligne Fabrication</th><th width=20%>N° de la donnée</th><th width=20%>Nom de la donnée</th><th width=20%>Date</th><th width=20%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
    				$Libelle_data = $row[4];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$Libelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td></tr>";
    			}		
    			echo '</table></center>';	
    			break ;
     
    	case "St Moret" :
    			$query_st_moret = "SELECT `idLigne_Fabrication` , `idLibelle_data` , `date` , `valeur` FROM `Data_journee` WHERE `idLigne_Fabrication` = 2 ORDER BY `idLibelle_data` ASC LIMIT 0, 300 ";
    			$result = mysql_query($query_st_moret);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=25%>N° Ligne Fabrication</th><th width=25%>N° de la donnée</th><th width=25%>Date</th><th width=25%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td></tr>";
    			}		
    			echo '</table></center>';	
    			break ;
     
    	case "Cric Crac" :
    			$query_cric_crac = "SELECT `idLigne_Fabrication` , `idLibelle_data` , `date` , `valeur` FROM `Data_journee` WHERE `idLigne_Fabrication` = 5 ORDER BY `idLibelle_data` ASC LIMIT 0, 300 ";
    			$result = mysql_query($query_cric_crac);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=25%>N° Ligne Fabrication</th><th width=25%>N° de la donnée</th><th width=25%>Date</th><th width=25%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td></tr>";
    			}		
    			echo '</table></center>';	
    			break ;
     
    	case "Tartare" :
    			$query_tartare = "SELECT `idLigne_Fabrication` , `idLibelle_data` , `date` , `valeur` FROM `Data_journee` WHERE `idLigne_Fabrication` = 3 ORDER BY `idLibelle_data` ASC LIMIT 0, 300 ";
    			$result = mysql_query($query_tartare);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=25%>N° Ligne Fabrication</th><th width=25%>N° de la donnée</th><th width=25%>Date</th><th width=25%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td></tr>";
    			}		
    			echo '</table></center>';	
    			break ;
     
    	case "Petit Louis" :
    			$query_petit_louis = "SELECT `idLigne_Fabrication` , `idLibelle_data` , `date` , `valeur` FROM `Data_journee` WHERE `idLigne_Fabrication` = 4 ORDER BY `idLibelle_data` ASC LIMIT 0, 300 ";
    			$result = mysql_query($query_petit_louis);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=25%>N° Ligne Fabrication</th><th width=25%>N° de la donnée</th><th width=25%>Date</th><th width=25%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td></tr>";
    			}		
    			echo '</table></center>';	
    			break ;
    }
    	mysql_close();
    }
    ?>
    <br>
    <br>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Pas très clair tout ça !
    Quelles sont les deux tables que tu veux lier? Quel champ supplémentaire souhaites-tu récupérer?
    imaginons "table1" et "table2" avec
    idLibelle_data comme clé primaire de table1 et comme clé étrangère de table2. Imaginons aussi que tu souhaite récupérer la variable "un_autre_champ".
    En reprenant l'exemple de l'un de tes affichages, tu devrais avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    			$query_ligne = "SELECT idLibelle_Ligne_Fabrication,nom,un_autre_champ FROM table1,table2 where table2.idLibelle_data=table1.idLibelle_data";
    			$result = mysql_query($query_ligne);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width="50%">N° Ligne Fabrication</th><th width="50%">Nom de la ligne</th>';
    			while($tableau = mysql_fetch_row($result)){
    				$ID_libelle_ligne = $tableau[0];
    				$Nom_ligne = $tableau[1];
                                    $Nouveau_champ = $tableau[2];
    					echo "<tr><td><center>$ID_libelle_ligne</center></td><td><center>$Nom_ligne</center></td>$Nouveau_champ<td></td></tr>";
    			}
    			echo '</table></center>';
    			break ;

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    dsl de ne pas avoir été clair :p

    je t'envoie une image de mes tables


    alors mon code de tout à l'heure, affiche idLigne_Fabrication, idLibelle_data, date et valeur (de la table Data_journee) dans un même tableau. Maintenant ce que je voudrais faire, c'est afficher le nom_libelle (de la table Libelle_data) correspondant à l'idLibelle_data du tableau, mais tout ca dans le même tableau.

    je sais pas si je suis plus clair que tout à l'heure, dis moi si tu comprends pas ce que je veux.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Okay c'est deja plus clair, voici donc la requete à modifier dans ton code:

    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
    	case "St Moret" :
    			$query_st_moret = "SELECT `Data_journee.idLigne_Fabrication` , `Data_journee.idLibelle_data` , `Data_journee.date` , `Data_journee.valeur`, `Libelle_data.nom_libelle` FROM `Data_journee`, `Libelle_data` WHERE `idLigne_Fabrication` = 2 and `Data_journee.idLibelle_data` = `Libelle_data.idLibelle_data` ORDER BY `idLibelle_data` ASC LIMIT 0, 300 ";
    			$result = mysql_query($query_st_moret);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=25%>N° Ligne Fabrication</th><th width=25%>N° de la donnée</th><th width=25%>Date</th><th width=25%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
                                    $libelle = $row[4];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td><td><center>$libelle</center></td></tr>";
    			}		
    			echo '</table></center>';	
    			break ;

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    J'ai essayé ton code, mais il me met un message d'erreur :
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/146/sda/5/5/jonathan.hervouet/Fromagerie/choix_ligne.php on line 97
    Je vois pas ce qui cloche, et si ca se trouve c'est un truc tout bête, et me connaissant je le vois pas.

    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
    case "Kidiboo" :
    			$query_kidiboo = "SELECT `Data_journee.idLigne_Fabrication` , `Data_journee.idLibelle_data` , `Data_journee.date` , `Data_journee.valeur`, `Libelle_data.nom_libelle` FROM `Data_journee`, `Libelle_data` WHERE `idLigne_Fabrication` = 1 and `Data_journee.idLibelle_data` = `Libelle_data.idLibelle_data` ORDER BY `idLibelle_data` ASC LIMIT 0, 300 ";
    			$result = mysql_query($query_kidiboo);
     
    			echo '<center><table width=80% border=#000000 CELLSPACING=0>';
    			echo '<th width=20%>N° Ligne Fabrication</th><th width=20%>N° de la donnée</th><th width=20%>Nom de la donnée</th><th width=20%>Date</th><th width=20%>Valeur</th>';
    			while($row = mysql_fetch_row($result)){
    				$idLigne_Fabrication = $row[0];
    				$idLibelle_data = $row[1];
    				$date = $row[2];
    				$valeur = $row[3];
    				$libelle_data = $row[4];
    					echo "<tr><td><center>$idLigne_Fabrication</center></td><td><center>$idLibelle_data</center></td><td><center>$libelle_data</center></td><td><center>$date</center></td><td><center>$valeur</center></td></tr>";
    			}	
    			echo '</table></center>';	
    			break ;

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    met ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($query_kidiboo) or die(mysql_error());
    et dis nous si ça te retourne une erreur sql

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    j'ai essayé d'enlever 'Data_journee' pour le premier cas, et les laisser pour les autres et il me retourne la même erreur :
    Unknown column 'Data_journee.idLibelle_data' in 'field list'
    donc c'est un problème d'appel de la base et des tables, mais je vois pas comment règler ce problème...

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Enleve les quotes autour des champs lorsque tu précises la table

    table.champ au lieu de `table.champ`, je pense que l'erreur vient de là.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    un grand merci, ca marche, c'était bien le problème de quote

    à+ peut etre sur le forum

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2011, 22h13
  2. Réponses: 8
    Dernier message: 22/03/2011, 16h42
  3. [AC-2007] Exporter deux tables différentes dans un même txt
    Par LilyX dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/02/2010, 16h26
  4. Réponses: 6
    Dernier message: 11/06/2008, 06h46
  5. [SQL] Somme de 2 colonnes dans une même table
    Par Cyrilange dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/04/2005, 08h32

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