AFFICHAGE PHOTO DANS UNE BOUCLE PHP (BDD) [Résolu]

Signaler
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021
-
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021
-
Bonjour,
J'ai récupéré de ma base de donnée des infos concernant seulement 4 produits que j'ai affiché sur une page php en tableau. Il y a une colonne photo, sur ma base de donnée les infos de cette colonne sont seulement l'extension de celle-ci donc dans mon tableau je n'ai que leurs extensions.
Ce que je voudrais c'est savoir comment les remplacer par des images que j'ai dans un dossier, peut être leurs assigné un id pour chaque image...bon j'ai essayer j'ai pas réussie . Cependant j'ai réussi avec une seule image mais comme ceci est dans une boucle l'image apparaît sur tout les produits....

Voici le code :
<main>
    <!-- DEBUT corps du tableau: -->
      <div class="row justify-content-center p-3">
        <table class="col-10 table table-bordered shadow rounded mt-2">
          <thead>
              <tr class="table-secondary">
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Photo</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">ID</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Référence</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Libellé</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Prix (€)</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Stock</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Couleur</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Ajout</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Modif</th>
                  <th scope="col" class="font-weight-semi-bold h6 border-table-secondary border-bottom-0">Bloqué</th>    
              </tr>       
          </thead>
          <tbody>
              <?php
                foreach($result as $produits){

                  if($produits['pro_bloque'] == true) {

                    $produits['pro_bloque'] = "bloque";
                } else {

                    $produits['pro_bloque'] = "";
                }
              ?>
                <tr>
                  <td class="bg-warning font-weight-light h6 border border-secondary"><img src="src/img/11.<?= $produits['pro_photo'] ?>" height="80" width="auto"></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_id'] ?></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_ref'] ?></td>
                  <td class="bg-warning font-weight-normmal h6 border-secondary text-uppercase"><u><a href="details_produits.php?id=<?= $produits['pro_id'] ?>"style=color:#FF0000><?= $produits['pro_libelle'] ?></a></u></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_prix'] ?></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_stock'] ?></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_couleur'] ?></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_d_ajout'] ?></td>
                  <td class="table-secondary font-weight-light h6 border-secondary"><?= $produits['pro_d_modif'] ?></td>
                  <td class="table-secondary font-weight-semi-bold h6 border-secondary"style=color:#FF0000><?= $produits['pro_bloque'] ?></td>
                </tr>
              <?php   
                }
              ?>
          </tbody>
        </table>
      </div>

    <!-- FIN corps du tableau: -->
    </main> 


j'ai essayer avec ceci assigné une photo par rapport à un id mais cela me met une erreur de syntaxe

                foreach($result as $produits){

                  if($produits['pro_id'] == 7) {
                    $produits['pro_photo'] = echo "<img src="src/img/11" height="80" width="auto">";
                  }

Configuration: Windows / Chrome 89.0.4389.90

1 réponse

Messages postés
15004
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
825
bonjour,
comment peux-tu déterminer l'image correspondant à chaque produit?
donne peut-être un exemple.
Messages postés
15004
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
825 >
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021

peut-être ainsi:
<td class="bg-warning font-weight-light h6 border border-secondary">
<img src="src/img/
<?php
echo $produits['libellé'] . "." . $produits['pro_photo'] ;
?>
" height="80" width="auto"></td>
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021
>
Messages postés
15004
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021

cela me donne le même résultat que mon code de mon premier poste

 <td class="bg-warning font-weight-light h6 border border-secondary"><img src="src/img/11.<?= $produits['pro_photo'] ?>" height="80" width="auto"></td>


il me remplace tout les .<?= $produits['pro_photo'] ?> par la même image

c'est pour cela que mon code juste après essayé de forcer la photo appelé à remplacer le "jpg" uniquement à l'id en question ou le nom du produit c'est idem pour ainsi évité la boucle du foreach


voici une capture d'écran peut être plus clair les informations récupéré vienne de la base de donnée je n'ai rien remplis dans c champs à l'exception des <th> "photo" "libelle" "id" "ref" comme c'est une boucle s'il on remplace un appel exemple $produits['pro_photo'] qui vaut à "png" par une image elle remplacera toute les strings "jpg"
Messages postés
15004
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021
825 >
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021

c'est bien de montrer une photo. cependant, il est surtout utile de montrer la source HTML de la page affichée.
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021
>
Messages postés
15004
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021

Bonjour désolé de vous répondre si tardivement mais j'ai enfin réussi
voici la ligne de code
<td class="bg-warning font-weight-light h6 border border-secondary"><img src="src/img/<?= $produits['pro_id'] ?>.<?= $produits['pro_photo'] ?>" height="80" width="auto"></td>

le produit_id c'est l'id des produits et comme mes images sont nommées par leurs id les images sont chacune avec leurs id
j'ai associé par id plus rapide.. merci pour votre indication ca ma mis sur la voie.
et oui la prochaine fois (j'espère pas lol) je mettrais toute les infos !
Messages postés
26
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
8 avril 2021
>
Messages postés
15004
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 avril 2021

ma réponse ne vous à pas convaincu ?