Bonjour,

je dois me tromper dans mon analyse.

  • 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 listtank 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.

J'utilise trois table :

table 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$dbtabfam = $db->query('SELECT * FROM aw_famille_tank');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#   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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$dbtabtype = $db->query('SELECT * FROM aw_type_tank');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#   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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$dbtablistank = $db->query('SELECT * FROM aw_liste_tank');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
#   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 ?

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
 
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!