Ca commence à me prendre la tête....

68_abis Messages postés 6 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 8 juillet 2005 - 7 févr. 2005 à 14:53
68_abis Messages postés 6 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 8 juillet 2005 - 7 févr. 2005 à 19:52
Bonjour,
Voilà mon p'tit ou plutôt gros soucis...je veux stocker des images dans une base Mysql et les afficher après avec PHP..
Le problème c'est que le script affiche une chaine de caractères à la place de l'image..
Qui peut me dire d'ou vient le problème...
Je mets ici les scripts que j'utilise, ils sont hyper simples..

Script de création de la table :
CREATE TABLE `images` (
`num` int(10) NOT NULL auto_increment,
`photo` blob,
PRIMARY KEY (`Num`)
)

Script de l'upload de l'image (jpeg) :


<?php
/** Routine test insertion et affichage image **/
require_once "code/config.php";
mysql_connect($mysql_host,$mysql_user);
mysql_select_db($mysql_db);
$image="classe2.jpg";
$photo=addslashes(fread(fopen($image,"r"),filesize($image)));
$result=mysql_query("INSERT INTO images(num,photo) VALUES (null,'$photo')");
mysql_close();
?>

Script de l'affichage de l'image :
<?php
require_once "code/config.php";
mysql_connect($mysql_host,$mysql_user);
mysql_select_db($mysql_db);
$result = mysql_query("SELECT photo FROM images WHERE num=1");
if (!$result) {
die("query failed: ".mysql_error());
}
$photo=mysql_result($result,0,'images.photo');
// echo $photo; // A decommenter pour affichage normal
?>
<?php // Facon PHP
echo '
'.$photo.'
';
?>
<?php
mysql_close();
?>

Voilà alors si quelqu'un peut m'indiquer comment résoudre ce problème...
Merci à tous..

2 réponses

cs_lotr Messages postés 128 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 12 août 2005
7 févr. 2005 à 19:09
Bonsoir,



ton insertion dans la base n'est pas bonne. Si ton champ "num" est en autoincrement, tu dois insérer de cette façon :

INSERT INTO images(num,photo) VALUES ('','$photo');

Par ailleurs, en général, il est préférable de
mettre les images dans un dossier et de ne stocker dans la base de
données que le chemin d'accès vers la photo.
0
68_abis Messages postés 6 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 8 juillet 2005
7 févr. 2005 à 19:52
Bonsoir lotr,
pour l'insertion, c'est excat, p'tite erreur de frappe, mais je te rassures, l'insertion fonctionne sans problème, mais comme dit dans mon message, pas moyen d'afficher l'image..

tu remarqueras que si dans le code pour l'affichage de l'image tu remplaces
$photo=mysql_result($result,0,'images.photo');
// echo $photo; // A decommenter pour affichage normal
par
$photo=mysql_result($result,0,'images.photo');
echo $photo;
l'image s'affiche correctement sur la page..

L'insertion ans la base des images plutôt que le nom du chemin est volontaire, la base ne contiendra au maximum qu'une dizaine de photos et définitivement.. voilà pourquoi ce choix...

Merci de ta réponse
0
Rejoignez-nous