affichage d`une image avec des champs d`une autre table

martin266

Nouveau WRInaute
salut,
je suis capable d`afficher l`image de la base de donnee mais j`arrive pas a afficher ses informations lies a une autre table ( titre, prix, description).

Table image (img_id, img_nom, img_taille, img_type, img_blob).
table produit (ref_produit, description, titre, prix, img_id).

Code:
fichier apercu.php
<?php
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);

$db = mysql_connect("localhost","root","");
$ret = mysql_select_db("boutique",$db) or die (mysql_error ());
$req = "SELECT image.img_id, image.img_type, image.img_blob, produit.img_id, produit.ref_produit, produit.titre, produit.description FROM image INNER JOIN produit WHERE image.img_id = produit.img_id and image.img_id = ".$id;
$ret = mysql_query ($req) or die (mysql_error ());

$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
echo $col[2] ;
echo $col[4];
echo $col[5];
echo $col[6];
}
}
else
{
echo "Mauvais id d'image";
}
?>

Code:
fichier affichage.php

<?php
$db = mysql_connect("localhost","root","");
$ret = mysql_select_db("boutique",$db) or die (mysql_error ());
$req = "SELECT image.img_nom, image.img_id FROM image ORDER BY image.img_nom";
$ret = mysql_query ($req) or die (mysql_error ());
while ( $col = mysql_fetch_row ($ret) )
{
echo "<a href=\"apercu.php?id=".$col[1].
"\">".$col[0]."</a><br /> ";
}
?>
merci d`avance pour votre aide[/code]
 

jeroen

WRInaute passionné
Salut,
Ne me dis pas que tu stockes ton image dans ta base de donnée ?
Si ?

Ce n'est pas ce qu'il faut faire : il faut juste stocker l'url de ton image.


Par ailleurs ton code
Code:
header ("Content-type: ".$col[1]);

ne marche pas : il indique au navigateur que ce qui suit est une image (donc $col[2]), mais aussi ce qui suit : $col[4], $col[5], $col[6]...


En modifiant la structure de ta base de donnée pour ne stocker que l'URL de ton image, ton code deviendra :

Code:
(..)
else
{
echo "<img src=\"".$col[CHAMP_QUI_CONTIENT_L'URL]."\" alt=\"\" />" ;
echo $col[4];
echo $col[5];
echo $col[6];
}
(...)
 

zeb

WRInaute accro
problème de conception :

ton script apercu.php renvoie un header de type image (logique c'est le but il me semble) et envoie l'image vers la sortie standard (plus d'autres grigri mais en texte qui ne seront pas visibles).
(au passage même remarque ne met pas ton image en base c'est pas terrible)

ensuite ton script affichage.php affiche un lien vers l'aperçu (qui devrait fonctionner a priori) mais ne traite pas les info textuels en base. donc tu ne risque pas de les voir.

moralité utilise la requête de l'apperçu dans le script d'affichage et en plus du lien vers l'aperçu tu auras les autres infos textuelles.
et évite de gaspiller tes ressources en cherchant les infos textuel là ou tu dois juste produire une image.
 

martin266

Nouveau WRInaute
proobleme resolu

merci beaucoup,
jai regle mon probleme en modifiant mon afficher.php et apercu.php:

echo "<a href=\"apercu.php?id=".$col[1]."\"><img src=\"apercu1.php?id=".$col[1]."\"><br /> ";

merci une autre fois
 

Discussions similaires

Haut