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 MySQL avec jointure


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Requête MySQL avec jointure
    Bonjour à tous!

    J'ai besoin d'aide pour ma requête qui nécessite une jointure, bien après avoir visité le forum, je me suis rendu compte que certains utilisent INNER JOIN et bien d'autres encore, seulement je ne comprends pas pourquoi cette méthode est plus efficace qu'un simple WHERE.

    Je vous propose de jeter un œil à ma requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT Idchaufgesco,NomChauff,Carte,Recette,TypeOperation,Relica,Observation 
    		  FROM t_chauffeur, t_recette, t_societe, t_op 
    	      WHERE t_chauffeur.Idchaufgesco=t_recette.Idchaufgesco
    		  AND t_recette.IdSoc=t_societe.IdSoc
    		  AND t_societe.IdOp=t_op.IdOp
    		  AND TypeOperation LIKE 'Avance'

    Il m'affiche comme message d'erreur qui est le suivant:

    "Column 'Idchaufgesco' in field list is ambiguous"

    Quel est le problème précisément?
    Es-ce que quelqu'un peut m'aider s'il vous plaît?

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par vainuiz Voir le message
    je me suis rendu compte que certains utilisent INNER JOIN et bien d'autres encore, seulement je ne comprends pas pourquoi cette méthode est plus efficace qu'un simple WHERE.
    JOIN fait partie de la norme SQL depuis 1992, il serait temps de s'y mettre.
    Sur le plan des performances, c'est en principe équivalent à la vielle syntaxe mais la lecture des requêtes est beaucoup plus claire avec la nouvelle et ça évite les bugs du genre oubli d'une condition de jointure ou d'une instance de table.
    Bref, oublie la vielle syntaxe obsolète !

    Je vous propose de jeter un œil à ma requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT Idchaufgesco,NomChauff,Carte,Recette,TypeOperation,Relica,Observation 
    		  FROM t_chauffeur, t_recette, t_societe, t_op 
    	      WHERE t_chauffeur.Idchaufgesco=t_recette.Idchaufgesco
    		  AND t_recette.IdSoc=t_societe.IdSoc
    		  AND t_societe.IdOp=t_op.IdOp
    		  AND TypeOperation LIKE 'Avance'

    Il m'affiche comme message d'erreur qui est le suivant:

    "Column 'Idchaufgesco' in field list is ambiguous"

    Quel est le problème précisément?
    Dans ton SELECT, tu fais appel à cette colonne sans préciser dans quelle table il faut aller la chercher or elle existe dans deux tables d'après l'une des conditions de jointure et le SGBD ne sait pas laquelle choisir.

    En plus de JOIN, une autre bonne pratique est d'utiliser des alias dès qu'une requête utilise plus d'une table.
    En plus, LIKE une valeur sans caractère générique est équivalent à = alors autant utiliser = !
    Tant qu'on y est sur les bonnes pratiques, aération du code et indentation facilitent encore plus la lecture donc l'éventuel déduggage.
    Ta requête modernisée devient celle-ci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT c.Idchaufgesco, c.NomChauff, Carte, Recette, o.TypeOperation, Relica, Observation 
    FROM t_chauffeur c
    INNER JOIN t_recette r ON c.Idchaufgesco = r.Idchaufgesco
    	INNER JOIN t_societe s ON r.IdSoc = s.IdSoc
    		INNER JOIN t_op o ON s.IdOp = o.IdOp
    WHERE o.TypeOperation = 'Avance'
    Il manque encore quelques alias dans le SELECT, je ne connais pas la structure de tes tables, à toi de les mettre.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réponse CinePhil et merci pour tes conseils qui me permettront d'améliorer ma façon de rédiger mes requêtes!

    J'ai bien compris le message d'erreur et c'est réglé!

    Cependant je reste bloqué parce qu'il n'y a aucune donnée qui apparaît dans mon tableau en PHP. J'ai essayé avec d'autres requêtes et mon tableau fonctionne.

    J'ai par la même occasion essayé avec le SGBD Access ma requête et ça fonctionne parfaitement. Il m'affiche les bonnes données. Sauf la requête que tu m'as corrigé, ça ne passe pas. (Il affiche "erreur de syntaxe opérateur absent dans l'expression: 'c.Idchaufgesco = r.Idchaufgesco
    INNER JOIN t_societe s ON r.IdSoc = s.IdSoc
    INNER JOIN t_op o ON s.IdOp=o.IdOp)

    Tou cela porte à confusion, je ne comprends plus rien. :s

    Je ne comprends pas pourquoi il n'y a aucune info dans mon tableau alors!
    Es-ce le fait que j'utilise du PHP qui bouscule tout?!

    Merci de me répondre.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par vainuiz Voir le message
    Cependant je reste bloqué parce qu'il n'y a aucune donnée qui apparaît dans mon tableau en PHP. J'ai essayé avec d'autres requêtes et mon tableau fonctionne.
    Essaie la requête directement dans phpMyAdmin ou autre outil équivalent.

    J'ai par la même occasion essayé avec le SGBD Access ma requête et ça fonctionne parfaitement. Il m'affiche les bonnes données. Sauf la requête que tu m'as corrigé, ça ne passe pas. (Il affiche "erreur de syntaxe opérateur absent dans l'expression: 'c.Idchaufgesco = r.Idchaufgesco
    INNER JOIN t_societe s ON r.IdSoc = s.IdSoc
    INNER JOIN t_op o ON s.IdOp=o.IdOp)
    Access a une manière très particulière d'écrire les jointures en les imbriquant et avec une forêt de parenthèses. Du coup il ne comprend pas la syntaxe normale. Bref, ne te fie pas à Access. Avec ce sous SGBD, fait des requêtes en mode graphique.

    Je ne comprends pas pourquoi il n'y a aucune info dans mon tableau alors!
    Es-ce le fait que j'utilise du PHP qui bouscule tout?!
    Il faudrait que tu postes ton code PHP pour qu'on essaie de voir ce qui ne va pas.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour et merci pour l'aide CinePhil!

    Donc! Je vous explique!

    L'intérêt de mon code et de faire apparaître à l'utilisateur deux listes déroulantes dépendantes et ensuite un tableau qui listent diverses informations: c'est à dire que,

    Dans la première liste déroulante s'affiche les trois sociétés avec qui nous sommes en partenariat ensuite dans la deuxième liste apparaît tous les employés appartenant à une des sociétés sélectionné dans la première liste déroulante.
    L'utilisateur valide ses sélections par le biais d'un bouton et à ce moment là va s'afficher un tableau qui listent les informations de la requête avec laquelle j'ai un souci en ce moment.

    J'espère avoir bien expliqué le contexte dans lequel se situe mon problème.

    Merci par avance à tous ceux qui voudront bien me donner un p'tit coup de pouce!

    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
     
    <FORM METHOD="POST">
    	</br>
    	<!-- Première liste déroulante -->
    	<label>Société :</label>
    	<SELECT name="Liste des sociétés"> 
    		<?php 
    			include('connexion.php');
     
    			$sql = " SELECT DISTINCT codeSoc FROM t_societe";
    			$result = mysql_query($sql) or die("Requete pas comprise"); 
     
    			while ($row=mysql_fetch_array($result))
    			{
    				echo"<option>$row[0]</option>";
    			} 
    		?>
    	</SELECT>
     
    	<!-- Deuxième liste déroulante -->
    	<label>Matricule chauffeur :</label>
    	<SELECT name="Liste des Chauffeurs">
    		<?php
    			$sql2 = " SELECT Idchaufgesco FROM t_societe WHERE '$row'"; 
    			$result2 = mysql_query($sql2) or die("Requete pas comprise"); 
     
    			while ($row2=mysql_fetch_array($result2))
    			{
    				echo"<option>$row2[0]</option>";
    			} 
    		?>	
    	</SELECT>
     
    	</br></br>
     
    	<input type="submit" value="Valider">
    	</br>
    	</br>
    	<div style="width:800px;height:258px;overflow:auto">
    	<table border="2">
    		<tr align="center" bgcolor="white">
    			<td width="10%"><font face="times new roman"><b>ID</b></font></td>
    			<td width="30%"><font face="times new roman"><b>Nom du chauffeur</b></font></td>
    			<td width="15%"><font face="times new roman"><b>Recette</b></font> </td>
    			<td width="15%"><font face="times new roman"><b>Carte</b></font> </td>
    			<td width="15%"><font face="times new roman"><b>Avance</b></font> </td>
    			<td width="45%"><font face="times new roman"><b>Relica</b></font> </td>					
    			<td width="45%"><font face="times new roman"><b>Observation</b></font> </td>
    		</tr>
    	<?php
     
    	$req="SELECT c.Idchaufgesco,prenom,Recette,Carte,IdSoc,Relica,Observation
    			FROM t_recette r, t_chauffeur c
    				WHERE r.Idchaufgesco=c.Idchaufgesco";
     
    	//$req="SELECT c.Idchaufgesco, c.NomChauff,r.Carte,r.Recette,o.TypeOperation,r.Relica,r.Observation 
    			//FROM t_chauffeur c
    				//INNER JOIN t_recette r ON c.Idchaufgesco = r.Idchaufgesco
    					//INNER JOIN t_societe s ON r.IdSoc = s.IdSoc
    						//INNER JOIN t_op o ON s.IdOp = o.IdOp";
     
    	//$req="SELECT c.Idchaufgesco,NomChauff,Carte,Recette,TypeOperation,Relica,Observation 
    			//FROM t_chauffeur c,t_recette r,t_societe s,t_op o
    				//WHERE c.Idchaufgesco = r.Idchaufgesco
    					//AND r.IdSoc=s.IdSoc 
    						//AND s.IdOp = o.IdOp";
     
    	$rep=mysql_query($req) or die (mysql_error());
     
    	//Affichage
    	//init de $i, compteur
    	$i = 1;
        while($row=mysql_fetch_row($rep))
    	{
            $IdChauf=$row[0];
            $NomChauf=$row[1];
            $Carte=$row[2];
    		$Recette=$row[3];
    		$TypeOperation=$row[4];
    		$Relica=$row[5];
    		$Observation=$row[6];
     
            echo "<tr align='center'><td>";
    		echo "$IdChauf";
    		echo "<input type='hidden' name='HB_id".$i."' value='".$IdChauf."'></td><td>";
    		echo"$NomChauf";
    		echo"</td><td>";
    		echo"$Carte";
    		echo"</td><td>";
    		echo"$Recette";
    		echo"</td><td>";
    		echo"$TypeOperation";
    		echo"</td><td>";
    		echo"$Relica";
    		echo"</td><td>";
    		echo"$Observation";
    		echo"</td></tr>";
    		$i = $i+1;
        }
     
    	//echo"<SELECT name='CB_etat".$i."' size='1' onChange=\"control(this.form);\">";
    		//echo"<OPTION>Ouverte";
    		//echo"<OPTION>En cours";
    		//echo"<OPTION>Fermée";
    		//echo"</SELECT>";
    		//echo"</td><td>";			
    		//echo"<input type='checkbox' name='table_array[$numero]' value='$numero'>";
     
    	?>
    	</table>
    	</br>
    	<a href="deconnexion.php">Déconnexion</a>
    </FORM>
    Remarqué que tout ce code n'est pas au point encore! Merci de cotre compréhension!

  6. #6
    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 : 47
    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
    Bonjour,

    allez je me lance, j'ai essayé de comprendre où tu voulais en venir.
    Tu dois mieux décomposer en étapes simple la complexité de ce que tu souhaites faire. Ensuite, je pense qu'il faudrait mieux te documenter sur le PHP et le HTML parce que tu vas vite te noyer.

    Je te propose 4 fichiers qui décomposent ta vue en blocs gérables :
    form.php
    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
    <?php
       include('connexion.php');
    ?>
    <form method="post" action="form.php">
       <br />
       <!-- Première liste déroulante -->
       <?php include('select_codesSocietes.php'); ?>
     
       <!-- Deuxième liste déroulante -->
       <?php include('select_chauffeurs.php'); ?>
     
       <br /><br />
       <input type="submit" value="Valider">
    </form>
     
    <br /><br />
    <!-- Tableau activité -->
    <?php include('table_activite.php'); ?>
    select_codesSocietes.php
    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
    <?php
     
    // LISTE : CODES SOCIETES
    $codeSocSelected = (isset($_POST['societe'])) ? $_POST['societe'] : null;
     
    $data = array();
     
    $sql  = 'SELECT DISTINCT codeSoc FROM t_societe';
    $qry  = mysql_query($sql) or die('Requete pas comprise');
    while($row = mysql_fetch_assoc($qry)) { $data[] = $row; }
    ?>
    <label>Société :</label>
    <select name="societe">
       <?php
          foreach($data as $code):
             $select = ($code === $codeSocSelected) ? ' selected="selected"' : null;
       ?>
       <option value="<?php echo $code['codeSoc']; ?>"<?php echo $select; ?>><?php echo $code['codeSoc']; ?></option>
       <?php endforeach; ?>
    </select>
    select_chauffeurs.php
    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
    <?php
     
    // LISTE : CHAUFFEURS
    $chauffeurSelected = (isset($_POST['chauffeur'])) ? $_POST['chauffeur'] : null;
    $codeSocSelected   = (isset($_POST['societe']))   ? $_POST['societe']   : null;
     
    $data = array();
     
    // on ne liste les matricules des chauffeurs que si un code société a été sélectionné
    if (null !== $codeSocSelected) {
       $sql = "SELECT Idchaufgesco FROM t_societe WHERE codeSoc = '$codeSocSelected'";
       $qry = mysql_query($sql) or die('Requete pas comprise');
       while($row = mysql_fetch_assoc($qry)) { $data[] = $row; }
    }
    ?>
    <label>Matricule chauffeur :</label>
    <select name="chauffeur">
       <?php
          foreach($data as $matricule):
             $select = ($matricule === $chauffeurSelected) ? ' selected="selected"' : null;
       ?>
       <option value="<?php echo $matricule['Idchaufgesco']; ?>"<?php echo $select; ?>><?php echo $matricule['Idchaufgesco']; ?></option>
       <?php endforeach; ?>
    </select>
    table_activites.php
    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
    <?php
     
    // TABLE :  ACTIVITE
    $chauffeurSelected = (isset($_POST['chauffeur'])) ? $_POST['chauffeur'] : null;
     
    $data = array();
     
    // on ne liste l'activité que si un matricule chauffeur a été sélectionné
    if (null !== $chauffeurSelected) {
     
       $sql = <<<SQL
       SELECT
          t_chauffeur.Idchaufgesco,
          t_chauffeur.prenom,
          t_recette.Recette,
          t_recette.Carte,
          t_recette.IdSoc,
          t_recette.Relica,
          t_recette.Observation
       FROM t_chauffeur
               INNER JOIN t_recette ON t_chauffeur.Idchaufgesco = t_recette.Idchaufgesco
       WHERE
          t_chauffeur.Idchaufgesco = $chauffeurSelected;
    SQL;
     
       $qry  = mysql_query($sql) or die('Requete pas comprise');
       while($row = mysql_fetch_assoc($qry)) { $data[] = $row; }
       $i = 0;
    }
    ?>
    <div style="width:800px;height:258px;overflow:auto">
       <table border="2">
          <thead>
             <tr align="center" bgcolor="white">
                <th width="10%"><font face="times new roman"><b>ID</b></font></th>
                <th width="30%"><font face="times new roman"><b>Nom du chauffeur</b></font></th>
                <th width="15%"><font face="times new roman"><b>Recette</b></font></th>
                <th width="15%"><font face="times new roman"><b>Carte</b></font></th>
                <th width="15%"><font face="times new roman"><b>Avance</b></font></th>
                <th width="45%"><font face="times new roman"><b>Relica</b></font></th>
                <th width="45%"><font face="times new roman"><b>Observation</b></font></th>
             </tr>
          </thead>
          <tbody>
          <?php foreach($data as $row): ?>
             <tr align="center">
                <input type="hidden" name="HB_id<?php echo $i++; ?>" value="<?php echo $row['Idchaufgesco']; ?>" />
                <td><?php echo $row['Idchaufgesco']; ?></td>
                <td><?php echo $row['prenom']; ?></td>
                <td><?php echo $row['Recette']; ?></td>
                <td><?php echo $row['Carte']; ?></td>
                <td><?php echo $row['']; ?></td>
                <td><?php echo $row['Relica']; ?></td>
                <td><?php echo $row['Observation']; ?></td>
             </tr>
          <?php endforeach; ?>
          </tbody>
       </table>
    </div>
    J'ai essayé de faire au mieux, en espérant ne pas avoir fait de boulettes.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Super ça fonctionne! Mais!
    Bonjour et merci pour ta réponse qui m'a beaucoup aidé à avancé rawsrc!

    Mais! Il reste un dernier souci!!! Mon tableau s'affiche et dans la colonne où je dois voir s'afficher les avances il y a un message d'erreur:

    Notice: Undefined index: in C:\wamp\www\AppliCaisse\table_activites.php on line 52

    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
    <?php
     include('connexion.php');
    // TABLE :  ACTIVITE
    $chauffeurSelected = (isset($_POST['chauffeur'])) ? $_POST['chauffeur'] : null;
     
    $data = array();
     
    // on ne liste l'activité que si un matricule chauffeur a été sélectionné
    if (null !== $chauffeurSelected) {
     
       $sql = <<<SQL
       SELECT
          t_chauffeur.Idchaufgesco,
          t_chauffeur.prenom,
          t_recette.Recette,
          t_recette.Carte,
          t_recette.IdSoc,
          t_recette.Relica,
          t_recette.Observation
       FROM t_chauffeur
               INNER JOIN t_recette ON t_chauffeur.Idchaufgesco = t_recette.Idchaufgesco
       WHERE
          t_chauffeur.Idchaufgesco = $chauffeurSelected;
    SQL;
     
       $qry  = mysql_query($sql) or die('Requete pas comprise');
       while($data[] = mysql_fetch_assoc($qry)) { }
       $i = 0;
    }
    ?>
    <div style="width:800px;height:258px;overflow:auto">
       <table border="2">
          <thead>
             <tr align="center" bgcolor="white">
                <th width="10%"><font face="times new roman"><b>ID</b></font></th>
                <th width="30%"><font face="times new roman"><b>Nom du chauffeur</b></font></th>
                <th width="15%"><font face="times new roman"><b>Recette</b></font></th>
                <th width="15%"><font face="times new roman"><b>Carte</b></font></th>
                <th width="15%"><font face="times new roman"><b>Avance</b></font></th>
                <th width="45%"><font face="times new roman"><b>Relica</b></font></th>
                <th width="45%"><font face="times new roman"><b>Observation</b></font></th>
             </tr>
          </thead>
          <tbody>
          <?php foreach($data as $row): ?>
             <tr align="center">
                <input type="hidden" name="HB_id<?php echo $i++; ?>" value="<?php echo $row['Idchaufgesco']; ?>" />
                <td><?php echo $row['Idchaufgesco']; ?></td>
                <td><?php echo $row['prenom']; ?></td>
                <td><?php echo $row['Recette']; ?></td>
                <td><?php echo $row['Carte']; ?></td>
                <td><?php echo $row['']; ?></td>
                <td><?php echo $row['Relica']; ?></td>
                <td><?php echo $row['Observation']; ?></td>
             </tr>
          <?php endforeach; ?>
          </tbody>
       </table>
    </div>
    Pourquoi avoir laissé un vide dans le tableau?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><?php echo $row['']; ?></td>
    Merci pour ton aide rawsrc!

  8. #8
    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 : 47
    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
    Citation Envoyé par vainuiz Voir le message
    Pourquoi avoir laissé un vide dans le tableau ?
    Parce que je ne savais pas quel code mettre. Je ne l'ai pas trouvé dans la requête SQL. Tu mets ce dont tu as besoin.

    Content que tu t'en sois sorti.
    Bon courage pour la suite.

Discussions similaires

  1. Problème de requête MYSQL avec plusieurs limit
    Par Super_baloo8 dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/05/2007, 18h35
  2. [MySQL] requête combinée avec jointure ?
    Par steve o'steen dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/10/2006, 14h43
  3. Requête DELETE avec jointure
    Par Roach- dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/03/2006, 15h00
  4. [MySQL] Erreur SQL 1064 : Requête imbriquée avec jointure !
    Par patchankito dans le forum Langage SQL
    Réponses: 5
    Dernier message: 31/01/2006, 10h37
  5. Afficher une requete MYSQL avec jointure
    Par Higestromm dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/12/2005, 15h52

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