IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] insertion plusieurs fichiers et variables liées


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Upload] insertion plusieurs fichiers et variables liées
    salut,

    je voudrais insérer plusieurs images avec un petit commentaire pour chacune.
    la partie upload de plusieurs images en une fois fonctionne bien mais je n'arrive pas à lier un texte à chacune d'elles.

    voila la partie du code concerné :

    table images_proprietes :

    id_images_proprietes/id_image/id_propriete/textfr/textuk


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     $idre=mysql_insert_id($connexion);
    $num=1;  
                   for($i=0;$i<4;$i++)  
                   {  
                      if($image[$i]<>"" && $image[$i]<>"none")  
                      {  
                         redimmensionimage($idre,$image[$i],160,"images_proprietes","propriete","_".$num,"p");  
                         $rechimage=mysql_query("select * from images_proprietes where id_propriete=$idre and id_image=$num",$connexion);  
     
     
     
                         if(mysql_num_rows($rechimage)==0)  
                         {  
     
     
     
                            $insert=mysql_query("insert into images_proprietes (id_images_proprietes,id_image,id_propriete) values ('','$num','$idre','$textfr','$textuk')",$connexion);  
                         }  
                      }  
                      $num++;  
                   } 
     
    for($i=1;$i<5;$i++) 
                        { 
            echo"<tr><td>".$i."<input type=file name='image[]' class=input200 ></td></tr> 
            <tr><td class=textno14gr  bgcolor=#999999>textfr</td><td bgcolor=#999999><input type=text name='textfr' value='$textfr' class='input200'></td></tr> 
        <tr><td class=textno14gr  bgcolor=#999999>textuk</td><td bgcolor=#999999><input type=text name='textuk' value='$textuk' class='input200'></td></tr> 
     
            ";}

    ma table se remplie comme suit :
    id_images_proprietes/id_image/id_propriete/textfr/textuk
    1 /1 /1 /testfr1/testuk1
    2 /2 /1 /testfr1/testuk1
    3 /3 /1 /testfr1/testuk1
    4 /4 /1 /testfr1/testuk1

    à savoir le même commentaire pour chacune des 4 images uploadées,

    auriez vous une piste sur la manière de procéder ? merci à vous

    ++

  2. #2
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    je suis sur cette piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $num=1; 
                        for($i=0;$i<4;$i++) 
                        { 
                            if($image[$i]<>"" && $image[$i]<>"none") 
                            { 
                                redimmensionimage($idre,$image[$i],160,"images_proprietes","propriete","_".$num,"p"); 
                                $rechimage=mysql_query("select * from images_proprietes where id_propriete=$idre and id_image=$num",$connexion); 
                                if(mysql_num_rows($rechimage)==0) 
                                { 
     
                                    $insert=mysql_query("insert into images_proprietes (id_images_proprietes,id_image,id_propriete,textfr,textuk) values('','$num','$idre','".$textfr.$num."','".$textuk.$num."'),",$connexion); 
     
     
                                    mysql_query($insert) or die('Erreur SQL !'.$insert.'<br>'.mysql_error()); 
                                } 
                            } 
                            $num++; 
                        } 
     
     
    for($i=1;$i<5;$i++){ 
            echo" 
            <tr><td>$i<input type=file name='image[]' class=input200 ></td></tr> 
            <tr><td class=textno14gr  bgcolor=#999999>textuk".$i."</td><td bgcolor=#999999><input type=text name='textuk".$i."' value='$textuk' class='input200'></td></tr> 
        <tr><td class=textno14gr  bgcolor=#999999>textfr".$i."</td><td bgcolor=#999999><input type=text name='textfr".$i."' value='$textfr' class='input200'></td></tr>";}
    je chauffe je chauffe ???

    sinon j'arrive sur mysql_error query was empty, arfff....

    ++

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Puisque tu poses une question de méthodologie, j'en profite pour commencer par quelques questions à ce sujet.

    • Visiblement, cette table est ce que j'appellerais une table de jointure car sa principale utilité est de mettre en relation deux identifiants : celui de l'image et celui du commentaire.
      En cela, tu as deux options.
      [list:1003b506f2]
    • L'une est celle que tu sembles avoir choisie, à savoir d'ajouter encore un identifiant, mais en le mettant en auto_increment comme tout bon identifiant qui se respecte (ce que tu ne sembles pas avoir fait mais je peux me tromper).
    • L'autre, que je préfère, est d'utiliser les identifiants reliés comme clef primaire. Cela donnerait une clef primaire composée de l'identifiant d'image et de celui du commentaire. Le résultat final est identique, à part qu'il correspond à l'évolution normale du MCD qui représente la BDD. Et puis ça permet de déléguer les soucis d'incohérences de données au SBGD, ce qui est toujours pratique et conseillé.
      D'ailleurs, tu l'as remarqué toi-même car tu n'utilises pas l'identifiant inutile pour sélectionner un tuple de cette table :
      Citation Envoyé par patmoly
      "select * from images_proprietes where id_propriete=$idre and id_image=$num"
    [*]Ta requête du départ me semblait louche car tu ne mettais pas le même nombre de champs et de valeurs...[*]Pour terminer, voici la requête qui me semble correcte (identifiant supplémentaire ou non) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mysql_query("INSERT INTO images_proprietes
                    (id_image, id_propriete, textfr, textuk)
                 VALUES
                    ('$num', '$idre', '".$textfr.$num."', '".$textuk.$num."')
    [/list:u:1003b506f2]

  4. #4
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci Kirkis de ces informations,
    j'ai résolue mon problème de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <? 
    $nb_value = sizeof($_POST['textfr']);
    					$num=1;
    					for($i=0;$i<$nb_value;$i++) 					{
    						if($image[$i]<>"" && $image[$i]<>"none")
    						{
     
    							 $FR=$_POST['textfr'][$i]; 
                                 $UK=$_POST['textuk'][$i]; 
    							redimmensionimage($idre,$image[$i],160,"images_proprietes","propriete","_".$num,"p");
    							$rechimage=mysql_query("select * from images_proprietes where id_propriete=$idre and id_image=$num",$connexion);
    							if(mysql_num_rows($rechimage)==0)
    							{
    								$insert=mysql_query("insert into images_proprietes (id_images_proprietes,id_image,id_propriete,textfr,textuk) values ('','$num','$idre','$FR','$UK')",$connexion);
     
     
     
    							}
    						}
    						$num++;
    					}
     
     
     
    $nb_champ = 5 ;
    		for($i=1;$i<$nb_champ;$i++) 
                        { ?>
           <tr><td><input type=file name='image[]' class=input200 ></td></tr> 
            <tr><td class=textno14gr  bgcolor=#999999>textfr</td><td bgcolor=#999999><input type=text name='textfr[]' value='<?php echo $_POST['textfr'][$i] ?>' class='input200'></td></tr> 
        <tr><td class=textno14gr  bgcolor=#999999>textuk</td><td bgcolor=#999999><input type=text name='textuk[]' value='<?php echo $_POST['textuk'][$i] ?>' class='input200'></td></tr> 
          <? 
    }//end boucle for
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] upload de plusieurs fichiers
    Par jc_cornic dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2010, 17h33
  2. Upload de plusieurs fichiers
    Par Docteurfla dans le forum ASP.NET
    Réponses: 25
    Dernier message: 11/05/2007, 21h21
  3. [Upload] Upload de plusieurs fichiers via formulaire
    Par seb67110 dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2007, 11h55
  4. Réponses: 6
    Dernier message: 01/04/2007, 18h39
  5. Réponses: 10
    Dernier message: 12/06/2006, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo