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

martin266
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 22 Aoû 2008

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

Message le Ven Aoû 22, 2008 18:39

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: Tout sélectionner
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: Tout sélectionner
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é
WRInaute passionné
 
Messages: 2461
Inscription: 30 Aoû 2002

Message le Sam Aoû 23, 2008 0:00

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: Tout sélectionner
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: Tout sélectionner
(..)
else
{
echo "<img src=\"".$col[CHAMP_QUI_CONTIENT_L'URL]."\" alt=\"\" />" ;
echo $col[4];
echo $col[5];
echo $col[6];
}
(...)


zeb
WRInaute accro
WRInaute accro
 
Messages: 4509
Inscription: 5 Déc 2004

Message le Sam Aoû 23, 2008 14:41

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
Nouveau WRInaute
 
Messages: 3
Inscription: 22 Aoû 2008

proobleme resolu

Message le Mar Aoû 26, 2008 19:12

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités