Stocker les images dans ma base de données et faire appel a elles sur ma page we

daryussssssss Messages postés 5 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 30 mai 2009 - 26 mars 2009 à 01:57
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 - 27 mars 2009 à 04:22
bonjour, je suis actuellement en train de développer un site internet, et j'ai créer un livre d'or. je voudrai que l'orsque les internautes veulent écrire un commentaire qu'ils puissent avoir la possibilité d'ajouter une photo et qu'elle s'affiche sur la page web a coté de leur commentaire, mais je ne vois pas comment faire sa.
je c que en gros il faut stocker les images dans ma base de données et faire appel a elles sur ma page web.

pourrai-je avoir une petite aide s'il vous plait

4 réponses

jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
26 mars 2009 à 10:37
Bonjour,
Mauvaise démarche ! (stocker les images dans ma base de données)

La "bonne" facon est de stocker les images dans un repertoire, et le NOM des images dans la BD (un champ VARCHAR fera l'affaire).

1 --> formulaire d'upload de l'image (en meme temps que les autres donnees du "livre d'or") avec :
<form name="livredor" method="post" ENCTYPE="multipart/form-data" action="traiterlivredor.php">
<textarea rows="4" cols="30" name="COMMENT" /></textarea>

</form>
2 --> traiterlivredor.php :
traitement des donnees recuperees (pseudo, commentaire, ... + PHOTO)
<?php
// -------------------------------------------
// repertoire des photos (doit etre deprotege en ecriture : chmod 777)
 $chemin = 'photos-livredor/';
// -------------------------------------------
$PSEUDO = mysql_real_escape_string(nl2br($_POST['PSEUDO']));
$COMMENT = mysql_real_escape_string(nl2br($_POST['COMMENT']));
// -------------------------------------------
// enregistrement des champs (autres que photo) dans la BD (par INSERT)
 $listechamps = 'PSEUDO,COMMENT';
 $listevaleurs = '\''.$PSEUDO.'\',\''.$COMMENT.'\'';
 $requeteNEW = 'INSERT INTO LIVREDOR ('.$listechamps.') VALUES('.$listevaleurs.')';
 $resultINSERTNEW = mysql_query($requeteNEW)  or die('Erreur SQL !
'.$requeteNEW.'
'.mysql_error());
// -------------------------------------------
// recuperation du ID cree en selectionnant LA DERNIERE fiche cree
 $query = 'SELECT MAX(ID) AS IDmax FROM LIVREDOR';
 $result = mysql_query($query)  or die('Erreur SQL !
'.$query.'
'.mysql_error());
 $val = mysql_fetch_array($result);
 $IDnew = $val['IDmax'];
// -------------------------------------------
if(isset($_FILES['PHOTO']))
  {
// Restrictions (accepter seulement les images, poids maxi, ...) :
 $FileSizeMax = 2000000;
 $ExtfichierOK = '" jpg jpeg png gif"';
// ... gestion des erreurs
// ...
// -------------------------------------------
// enregistrement de la photo dans le repertoire
  $PHOTOupload = $_FILES['PHOTO']['name'];
  $temp = $_FILES['PHOTO']['tmp_name'];
  move_uploaded_file($temp, $chemin.$PHOTOupload);
// enregistrement du NOM de la photo dans la BD (par UPDATE)
  $SQL = 'UPDATE LIVREDOR SET PHOTO=\''.$PHOTOupload.'\' WHERE ID= '.$IDnew;
  mysql_query($SQL);
?>

Si je n'ai pas fait d'erreur ..........
0
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
26 mars 2009 à 10:46
Voir aussi cet excellent (!) tutorial :
http://www.phpcs.com/tutoriaux/PHP-REDIMENSIONNER-IMAGE-PICTO-APRES-UPLOAD_881.aspx

pour :
- un exemple complet traité d'upload et enregistrement dans BD (voir le paragraphe FICHIER-TRAITER.php)
- Le redimensionnement des photos (creation de picto, ...) : fonctions de redimensionnement d'images, ...

Le meme tuto avec une meilleure mise  en page (et des illustrations) ici : http://j-reaux.developpez.com/tutoriel/php/fonctions-redimensionner-image/
0
daryussssssss Messages postés 5 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 30 mai 2009
26 mars 2009 à 16:29
je te remercie beaucoup pour ton aide j'avance a grand pas^^, mais en ce qui concerne l'enregistrement du nom de la photo, je comprend pas pourquoi tu a fais un UPDATE au lieu d'un INSERT, puis il serai mieux d'enregistrer le chemin de l'image si je veux faire appel à elle dans une page web non???
0
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
27 mars 2009 à 04:22
1- Les PSEUDO et COMMENT ont ete enregistres en INSERT : DONC la fiche a ete cree.
2- traitement de l'image (eventuelle)
3- On recupere l'ID de cette derniere fiche cree pour y ajouter la PHOTO (UPDATE)

Dans mon cas, j'ai separe l'enregistrement des donnees "text" des donnees image "file".
L
Mais l'etape 1- peut aussi se faire en meme temps que la 3- (dans ce cas -> INSERT PSEUDO, COMMENT + PHOTO)

Enfin, c'est bien le NOM de l'image qui est inserée dans la BD ($PHOTOupload), mais on peut aussi lui ajouter le chemin ($PHOTOupload = $chemin.$PHOTOupload)
0
Rejoignez-nous