Bonjour,
Je rencontre de la difficulté avec la création d'image en PHP. Voici un bref résumé du résultat souhaité :
J'ai 3 offres, chacune à son nom et ses propres caractéristiques. Pour afficher ces offres (chacune des offres sont stockées dans la BD), j'utilise une boucle foreach, jusque là, aucun problème, tout est fonctionnel.
Cependant, niveau apprence, j'aimerais afficher les offres à partir d'une image (donc cela nécessite de créer une image en PHP, chose que j'ai immédiatement faite). Le problème vient principalement de l'affichage de chaque nom des offres (et ses caractéristiques) dans cette fameuse image.
Mon code PHP pour la création d'image :
<?php
include ('model/ConnexionBDD.php');
$conn = BDDConnexionPDO();
$req = $conn->query('SELECT * FROM offre');
$req->execute();
$result = $req->fetchAll();
foreach($result as $offer) {
$image = imagecreatefrompng('assets/img/offers.png');
$noir = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 5, 50, 100, $offer['nom_offre'], $noir);
imagestring($image, 5, 50, 135, 'OK', $noir);
imagestring($image, 5, 50, 170, 'TEST', $noir);
header('Content-type: image/png');
imagepng($image);
}
Voici comment j'affiche les offres :
<div class="row">
<?php
foreach($tabAllOffers as $offer) {
?>
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="test.php" />
<div class="caption">
<h3><?php echo $offer['nom_offre']; ?></h3>
<p><?php echo $offer['credit_offre']; ?> crédits</p>
<p><?php echo $offer['montant_offre']; ?> €</p>
<p><a href="index.php?p=offres&action=acheter&offre=<?php echo $offer['num_offre']; ?>" class="btn btn-primary" role="button">Acheter</a> </p>
</div>
</div>
</div>
<?php
}
?>
</div>
Je me suis posé la question suivante également : dois-je créer une image PHP par offre ?
Merci de votre aide
@Huggy : en fait, l'image affiche 3 images similaires avec le même texte, alors qu'il devrait m'afficher trois textes différents.
@Advancid : du coup, tu me conseillerais de créer une image par offres (donc hors PHP) ?
Ah oui, je ne pensais pas que c'était possible en fait. J'ai essayé, et en effet, cela fonctionne.
Merci @Advancid.