Index du forum »»  Le coin des codeurs »» insertion image ds mysql

insertion image ds mysql#4160

16Contributeur(s)
AnonymedeveloppeursnipekaraparscedruskofaxelSilverXargosstivhawkloutPSTLralaryGawaxdonaldmarcTitosvigan
3 Modérateur(s)
developpeurjpbJireck
cedruskof cedruskoficon_post
Ysandril: PLEASE I NEED YOUR SCRIPT

s'il vous plait aidez moi. ma vie en depend :)

je passe mon BTS dans une semaine et j'ai un projet à rendre avec une base de données de textures ( snif).
Si quelqu'un pourrait me mailer ce fameux petit script magique qui me sauverais la vie. je gallère comme un rat mort depuis 3 semaines.
Merci d'avance et merci NPDS :-o

Mail: cedruskof@hotmail.com
axel axelicon_post
dis dnc, c pas un peu tard, pour bosser tonBTS ? :-D ??
Anonyme Anonymeicon_post
Salut,

Bon devant à la demande générale :b voici le script :


page affiche_image.php qui contient le code de récupération de l'image dans
la base MySQL :

<?
session_start();
!!include!!("scripts/parametres.php"); // page qui contient les
infos de connexion à la base, au choix du développeur
$db = mysql_connect("$dbhost", "$dblogi", "$dbpass");
mysql_select_db("$dbbase",$db);

$row=mysql_query("select * from images where id=$id");
$type=mysql_result($row,0,"i_type");
$name=mysql_result($row,0,"i_name");
$size=mysql_result($row,0,"i_size");
$image=mysql_result($row,0,"image");
header("!!content-type:!! $type");
echo $image;
?>


ensuite, sur n'importe quelle page, il suffit de mettre ces 2 lignes pour
afficher l'image :

<?
$image_aff = <img src=\"affiche_image.php?id=".$id."\">"; // $id
est la variable qui contient l'identifiant de l'enregistrement dans lequel
se trouve l'image
echo $image_aff;
?>


script de création de la table MySQL : (bien-sur, il est possible d'intégrer
ces champs dans une autre table)

CREATE TABLE images (
id int(11) NOT NULL auto_increment,
image longblob NOT NULL,
i_name varchar(100) NOT NULL default '',
i_size varchar(50) NOT NULL default '',
i_type varchar(50) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;


et voila, c'est pas plus compliqué que ca ;-)

N'hésitez pas si vous avez des questions :-)

A bientot,
Ysandril

[ Message édité par : developpeur : 03-05-2003 22:36 ]
Anonyme Anonymeicon_post
arf, me suis fait avoir :#

la balise a été interprétée, donc il met la fameuse croix rouge
voici donc la ligne de code modifiée : (celle ou y'a la croix rouge)

$image_aff = <img src=\"affiche_image.php?id=".$id."\">";

voila, @+
Ysandril
developpeur developpeuricon_post
reste à faire le script qui charge l'image dans la base. L'utilisation d'un chmap blob est bien et permet de gérer pleins de truc en binaire.

Merci
cedruskof cedruskoficon_post
Je dis un grand merci à tous, pour cette rapidité et cette efficacité.
Et pour MR Axel: Si j'avais que ca à gérer pour le bts je l'orais fait depuis l'année dernière. :-D

Bon cvrai que je mi prend a la derniere minute...

Merci à tous
Anonyme Anonymeicon_post
Salut,

Ah oui, pour le sript d'enregistrement dans la BD, c simple aussi, je le recherche (je l'ai masi je sais plus ou lol) et le met ;)

@+
ysandril
Anonyme Anonymeicon_post
Ah bé le voila, il était pas si loin finalement ;-)


donc la c pour mettre un champ de sélection du fichier image :
Image :<input type="file" name="image" size="40"><input type="hidden" name="MAX_FILE_SIZE" value="1000000">

et la c pour mettre dans un varible l'image au format binaire si on l'a sélectionnée :

if ($image!="none")
$imag=AddSlashes(fread(fopen($image,"rb"),filesize($image)));
else
{
$imag="";
$image_type="";
$image_size="";
$image_name="";
}


Ensuite hé bien une petit requete INSERT INTO en mettant la variable $imag dans le champ BLOB et c'est joué :-P

@+
Ysandril

[ Message édité par : developpeur : 05-05-2003 12:28 ]
Anonyme Anonymeicon_post
Citation : "22-04-2003 13:52, Anonyme a écrit :
Bonjour à tous

il y a un moyen beaucoup plus simple et plus rapide : c'est de stocker l'image directement dans la base MySQL, sans qu'elle soit dans un répertoire online. Il suffit pour cela d'utiliser un champ binaire.
Si le script intéresse quelqu'un, qu'il le dise, je le mettrais. Ca ne fait que quelques lignes ;)

@+ Ysandril."
----------
Je suis intéressé par ton script : Peux-tu me l'envoyer à l'adresse Manuuu@euronet.be

Merci d'avance.
Anonyme Anonymeicon_post
Bonjour,

Ca m'interressait beaucoup. Peut-tu me l'envoyer à l'adresse suivante : philippe.lecocq@wanadoo.fr

Merci
Anonyme Anonymeicon_post
bonjour !
je suis fortement interessé par ce script ! peux tu me l'envoyer à l'adresse tiana@moomia.com
Merci
Anonyme Anonymeicon_post
Citation : "22-04-2003 13:52, Anonyme a écrit :
Bonjour à tous

il y a un moyen beaucoup plus simple et plus rapide : c'est de stocker l'image directement dans la base MySQL, sans qu'elle soit dans un répertoire online. Il suffit pour cela d'utiliser un champ binaire.
Si le script intéresse quelqu'un, qu'il le dise, je le mettrais. Ca ne fait que quelques lignes ;)

@+ Ysandril."
----------

Je suis très très intéressé aussi si tu pouvais me l'envoyer... pascal@goubier.net
Anonyme Anonymeicon_post
Bonjour a tous !!

je viens de voir ce code qui m'a bcp interessé. tout ce passe bien l'insertion de l'image dans la table mais j'ai un pb pour afficher l'image.

ce code me pose un pb:
<?
$image_aff = "<"img src=\"affiche_image.php?id=".$id."\">";
echo $image_aff;
?>

il me met comme erreur: Parse error: parse error, unexpected T_STRING

en esperant que qq1 m'aide
Merci d'avance :D :D :D
axel axelicon_post
y'a pas des " en trop ?


$image_aff = "<img src=\"affiche_image.php?id='.$id.'\">";


=> ca marche pas ca ?

ps : je suis une br**** en PHP, alors je tente le couip, mais je garanti rien :-)
snipe snipeicon_post
$image_aff = '<img src="affiche_image.php?id='.$id.'">';
ou
$image_aff = "<img src=\"affiche_image.php?id=".$id."\">";
:)

Ps: C pas bon ton truc axel :)

[ Message édité par : snipe : 13-05-2003 12:05 ]