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

Signaler
Messages postés
6
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
8 juillet 2005
-
Messages postés
6
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
8 juillet 2005
-
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

Messages postés
128
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
12 août 2005

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.
Messages postés
6
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
8 juillet 2005

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