Bonjour,
je dois me tromper dans mon analyse.
en gros:
ma table famille contient le paramétrage de chaque famille avec leur image.
ma table type contient le paramétrage de chaque type avec leur image.
ma table listank contient la liste des tanks avec leur image
Ce que je veux faire c'est :
Quand j'appel l'affichage de la liste des tans, je veux faire afficher les images du type et de la famille
puisque dans la table listtank j'ai idtype et idfam.
j'ai essayer avec foreach mais je n'y arrive pas non plus.
je ne sais pas si j'ai été assez clair.

table 1

$dbtabfam = $db->query('SELECT * FROM aw_famille_tank');

#   Nom     Type    Interclassement    Attributs    Null    Défaut  Extra 
1   idfam       int(11)                UNSIGNED Non Aucune  AUTO_INCREMENT
2   nom_fam     varchar(10) latin1_general_ci       Non Aucune        
3   coul_fam    varchar(6)  latin1_general_ci       Non Aucune        
4   log_fam     varchar(100)latin1_general_ci

table 2

$dbtabtype = $db->query('SELECT * FROM aw_type_tank');

#   Nom     Type    Interclassement    Attributs    Null    Défaut  Extra 
1   idtype      int(11)                         Non Aucune  AUTO_INCREMENT    
2   nomtype     varchar(10) latin1_general_ci       Oui NULL      
3   logtype     varchar(100)latin1_general_ci       Oui NULL

table 3

$dbtablistank = $db->query('SELECT * FROM aw_liste_tank');

#   Nom     Type    Interclassement    Attributs    Null    Défaut  Extra 
1   idtank      int(11)                             Non Aucune  AUTO_INCREMENT    
2   nomtank     varchar(50) latin1_general_ci       Non Aucune        
3   rangtank    int(2)                          Non Aucune        
4   idtype      int(11)                     Non Aucune        
5   logtank     varchar(100)latin1_general_ci           Non Aucune        
6   idfam       int(11)                     Non Aucune        
7   cartank     varchar(1)  latin1_general_ci       Non Aucune

j'ai ma première ligne qui s'affiche bien mais pas les autres.
Qu'est ce que j'oublie de faire ?
ou qu'est ce que je fais mal ?

include('../config/configsql.php');
/* Acces à la base de données */
try
{
 $db = new PDO('mysql:host='.HOST.';dbname='.DB_NAME.';charset=utf8', ''.ROOT.'',''.MDPASS.'');
 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
    print "Erreur de conenxion, désolé: " . $e->getMessage() ; die();
}
/* lecture des tables de la base de données des types de tank*/
$dbtablistank = $db->query('SELECT * FROM aw_liste_tank');
$dbtabtype = $db->query('SELECT * FROM aw_type_tank');
$dbtabfam = $db->query('SELECT * FROM aw_famille_tank');
?>
<table border=1 cellspacing=0 cellpadding=0 width=50%>
    <caption> Liste de tank Armored</caption>
    <tr valign=middle>
        <th align=center>ID</th>
        <th align=center>NOM</th>
        <th align=center>RANG</th>
        <th align=center>TYPE</th>
        <th align=center>LOGO</th>
        <th align=center>ID FAM</th>
        <th align=center>CARACTERISTIQUE</th>
    </tr>
    <?php
// On affiche chaque entrée du tableau fammille de tank une à une
while ($tablistank = $dbtablistank->fetch() )
    {    
        ?>
            <tr valign=middle>
                <td align=center><?php echo $tablistank['idtank']; ?></td>
                <td align=center><?php echo $tablistank['nomtank']; ?></td>
                <td align=center><?php echo $tablistank['rangtank']; ?></td>
                <td align=center>
                    <?php
                    while ($tabtype = $dbtabtype->fetch())
                        {
                            if ($tablistank['idtype'] == $tabtype['idtype'])
                                {
                                    $imagetype="../../images/".$tabtype['logtype'];
                                    echo $tabtype['nomtype']." ";
                                    echo '<img src="'.$imagetype.'" alt="" />';
                                }
                        }
                    $dbtabtype->closeCursor();
                    ?>
                </td>
                <td align=center>
                    <?php
                        $imagetank="../../images/".$tablistank['logtank'];       
                        echo '<img src="'.$imagetank.'" alt="" />';
                    ?>
                    </td>
                <td align=center>
                    <?php
                        while ($tabfam = $dbtabfam->fetch())
                            {
                                if ($tablistank['idfam'] == $tabfam['idfam'])
                                    {
                                        $imagefam="../../images/".$tabfam['log_fam'];       
                                        echo '<img src="'.$imagefam.'" alt="" />';
                                    }
                            }
                        $dbtabfam->closeCursor();
                    ?>
                </td>
                <td align=center><?php echo $tablistank['cartank']; ?></td>
            </tr>
        <?php
    }
?>
</table>

merci de pour votre aide.
bien à vous!

2 réponses


essaie de debuggé tes variables.

echo '<pre>';
var_dump($dbtablistank->fetchAll());
var_dump($dbtabfam->fetchAll());
var_dump($dbtabtype->fetchAll());
echo '</pre>';

pour voir ce que te retourne ta bdd.

Eric29
Auteur

Résolu.
merci