Upload d'image et post de commentaire lié avec mysql

Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008 - 20 sept. 2006 à 11:41
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008 - 25 sept. 2006 à 15:01
Bonjour à tous ceux qui liront ce petit bout de texte,

Voilà je souhaite créer une page qui permettra à mes visiteurs d'upload une image et ensuite de laisser un commentaire lié à cette image.

Pour l'instant j'ai un script PHP qui upload l'image dans un dossier sur mon serveur.
Ensuite j'ai un autre script PHP qui parcour ce dossier et qui affiche les images trouvées.
Pour l'histoire du commentaire j'ai créer un script qui crée une table portant le nom du fichier uploadé avec comme champs "id" et "commentaire". Le problème c'est que je n'arrive pas à afficher le bon commentaire en face de la bonne image.

Quelqun à une idée, une autre solution ?

On m'a parlé de créé un script qui insèrerai les infos de mon image dans une base mysql puis pour l'affichage il suffirai d'afficher ce que contient la base mysql. Mais je ne voit pas comment.

Merci

10 réponses

cs_darkduck Messages postés 138 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 29 février 2008 1
20 sept. 2006 à 16:14
Salut,

La meilleure solution d'apres moi est de créer une table de ce genre : "id_image","chemin_image","commentaire" et a chaque fois qu'un visiteur upload une image, tu enregistres dans la table les info de cette image : "chemin_image" correspond au chemin de l'image sur le serveur; "commentaire" correspond au commentaire laissé par le visiteur.

Apres le tout est de savoir si il peut y avoir plusieurs commentaires pour une meme image ou pas.
Dans ce cas il faudrai créé une autre table.
0
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
20 sept. 2006 à 17:32
si plusieurs commentaires :

tbl_images :
--------------
id : unsigned int autoincrement primarykey   -- id unique de l'image
titre : varchar(255) not null                           -- titre le l'image
chemin : varchar(255)                                   -- chemin du fichier uploadé

tbl_commentaires :
-------------------------
id : unsigned int autoincrement primarykey   -- id unique du commentaire (pratique pour supprimer)
image_id : unsigned int                                 -- clé étrangere vers id de tbl_images
auteur : varchar(255)                                    -- auteur du commentaire
texte : text                                                      -- texte du commentaire
...

++
0
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008
20 sept. 2006 à 19:04
Merci beaucoup à vous deux, ça m'aide énormement surtout le coup de la clé etrangère (j'avais completement oublié). Sinon je vais tester et je vous tiens au courant.

Merci beaucoup
0
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008
20 sept. 2006 à 21:53
Bon j'avance à grand pas le seul "ique" c'est que je n'arrive pas à afficher l'image.
J'ai deux tables : images et commentaire
Lors de l'upload j'inscrit dans la table images l'id (auto increment), le titre et le chemin ou elle se trouve (ex: http://site.fr/image/fichier.jpg) puis en parallele dans la table commentaire j'inscrit l'id, le commentaire et l'auteur.

Ensuite pour l'affichage je fait un select dont je met les infos récuperées dans un tableau avec mysql_fetch_array et ensuite j'affiche via un truc du genre echo $donnees['commentaire'];
Or l'affichage de l'imaqe ne fonctionne pas puisqu'il affiche la reference de la case du tableau.

SOS

Encore merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008
20 sept. 2006 à 22:02
C'est bon j'ai corrigé le problème, il suffisait de définir une variable intermédiaire.
0
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008
20 sept. 2006 à 22:24
Encore un soucis :

Comment afficher tous les commentaires sans pour autant afficher plusieurs fois l'image ?
Car les commentaires ont un id différents, seul l'image_id (clé etrangère se rapportant à l'id de la table images) est identique.
0
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
20 sept. 2006 à 22:55
fait rapido ça donnerait un truc du genre ...

// connect
//...

// requetes
$result = mysql_query("SELECT id,titre ,chemin FROM tbl_image;");
while ($row = mysql_fetch_row($result))
{

   // affiche l'image
   echo "
";

   $result2 = mysql_query("SELECT texte,auteur FROM tbl_commentaires WHERE image_id=$row[0];");
   while ($row2 = mysql_fetch_row($result2))
   {
      // ecrit le commentaire
      echo "$row2[0] par $row2[1]
";
   }
   mysql_free_result($result2);
}
mysql_free_result($result);

// déconnecte
// ...

++
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
21 sept. 2006 à 22:13
fait extremement attention si tu autorise des internaute a upload quelque chose sur ton serveur (en l'occurence ici des jpg)
peut tu me faire voir cmt tu verifie si le fichier est bien un jpg ?

L0rD...
0
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008
22 sept. 2006 à 18:34
Pour vérifier le type de fichier ça donne un truc comme ça:

//fixe le type d extension de fichier
$allowed_types = array("image/gif", "image/pjpeg", "image/jpeg", "image/jpg");

//stockage des proprietes ds des variables
$fname = $HTTP_POST_FILES['fichier']['name'];
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];

//verifie si le type de fichier est bien autorise
if(in_array($ftype, $allowed_types))

{
0
Padaone91 Messages postés 22 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 20 décembre 2008
25 sept. 2006 à 15:01
Voilà c'est terminé, en revanche j'ai abandonné le projet de pouvoir déposer plusieurs commentaires, les visieurs peuvent déposer une image en laissant un commentaire, un titre, leur nom et il renomment le fichier.

c'est par ici : http://www.macadame.fr (rubrique "Votre Espace"

Ciao
0
Rejoignez-nous