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 et insertion multiple de fichier


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut Upload et insertion multiple de fichier
    Tout d'abord bonjours. J'ai une application a rendre. Et j'ai decidé de concevoir une sorte de blog en php. Lors de la création, je voudrais pouvoir créer un article et lui associer deux images (ou plus mais c'est pareil ^^).

    En premier lieu voici un extrait utile de mon code.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?
    if (isset($_POST['cmdenvoyer'])){
    	print("<br/><br/>");	
     
    	$titart=$_POST['txttitart'];
    	$libart=$_POST['txtlibart'];
    	$libart = nl2br($libart);
    	$req="INSERT INTO article (titart, libart) VALUES ('$titart', '$libart')";
    	$result=mysql_query($req,$connexion);
    	if ($result){
    		print("Ajout de l'article <br/>");
    	}
    	else{
    		print("Erreur lors de l'insertion de l'article <br/>");
    	}
     
    	$requete1="SELECT * FROM article WHERE titart='$titart' AND libart='$libart'";
    	$curseur1=mysql_query($requete1,$connexion);
    	$enreg=mysql_fetch_object($curseur1);
     
    	print("<br/>");
     
      $numart=$enreg->noart;
      list ($indice,$strnomp)=each($_FILES['monfichier']['name']);          // Lecture du 1er élément monfichier: indice et valeur
      while ($strnomp){
       	$req="INSERT INTO image (ficimg, numart) VALUES ('$strnomp', $numart)";
    	$result=mysql_query($req,$connexion);
    	 if ($result){
    	 	print("Ajout de l'image <br/>");
    		print $_FILES['monfichier']['tmp_name'];
    		print $_FILES['monfichier']['name'];
    		if(move_uploaded_file($_FILES['monfichier']['tmp_name'], getcwd()."\images\\".$strnomp)){
    			print ("Ok import effectué <hr/> ");
    		}
    		else{
    			echo 'Erreur lors de l import du fichier '.$strnomp;
    		}
    	}
    	else{
    		print("Erreur lors de l'insertion de l'image <br/>");
    	}
     list ($indice,$strnomp)=each($_FILES['monfichier']['name']);  
     }
    }
     
    ?>
     
    <form action="creation.php" enctype="multipart/form-data" method="post">
         Titre article :<br/> 
          <input type="text" name="txttitart" />
          <br/><br/>
     	  Article : <br/>
          <textarea name="txtlibart" rows=10 cold=50></textarea>
          <br/><br/>
          <?
    	  $i=0;
          while($i != 2)
    	  {  
    		  print("<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000000\"> ");
    		  print("<input type=\"file\" name=\"monfichier[]\"> <br/><br/>");
    		  $i =$i + 1;
          }
    ?>
    <input type="submit" name="cmdenvoyer" value="Créer" />
    </form>
    Bon alors je sais qu'il n'y a rien de valide ^^ Ca fait plusieur moi que je l'ai commencé et je connaissais meme pas le W3C a l'epoque

    Donc voila je créer plusieurs objet input=file.
    Et j'aimerais les traiter un par un afin de renseigner ma base de donnée. Mais ca ne marche pas, naturellement... Pour le premier ca commence bien, et a partir du deuxieme ca plante...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    Pourrais-tu être plus technique que "ca plante" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    Disons que ca ne "plante pas vraiment", mais que ca ne fonctionne pas.

    Le resultat est le suivant
    Ajout de l'article

    Erreur lors de l'insertion de l'image
    Erreur lors de l'insertion de l'image

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Affiche les erreurs sql pour voir pourquoi ta requete ne s'execute pas (au passage j'ai remplacé ton list/while par un foreach plus élégant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    foreach ($_FILES['monfichier']['name'] as $strnomp) {
       	$req="INSERT INTO image (ficimg, numart) VALUES ('$strnomp', $numart)";
    	$result=mysql_query($req,$connexion);
    if ($result) {
     
     
    }
    else{
       echo 'Erreur lors de l'insertion de l'image <br/>' . $req . '<br />' . mysql_error();
    }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    dak. merci je test ca tout de suite

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    Ajout de l'article

    Erreur lors de l'insertion de l'image
    INSERT INTO image (ficimg, numart) VALUES ('18746500.jpg', 64)
    Duplicate entry '127' for key 1Erreur lors de l'insertion de l'image
    INSERT INTO image (ficimg, numart) VALUES ('1188519861_18746486_w434_h289_q80.jpg', 64)
    Duplicate entry '127' for key 1
    J'ai trouvé mon erreur ( et quelle erreur bidon !!) Jai declaré ma clé primaire en tynint au lieu de int

    Il ne m'importe pas les images, mais l'insertion fonctionne aparement. Merci bien
    Ajout de l'image
    ArrayArrayErreur lors de l import du fichier 1188519861_18746486_w434_h289_q80.jpgAjout de l'image
    ArrayArrayErreur lors de l import du fichier 18746500.jpg
    Comme le montre le message ci dessus, le probleme qu'il reste est uniquement un probleme au niveau de l'import suite a l'insertion.

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 63
    Par défaut
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    if (isset($_POST['cmdenvoyer'])){
    		echo '<br/><br/>';	
     
    		$titart=$_POST['txttitart'];
    		$libart=$_POST['txtlibart'];
    		$libart = nl2br($libart);
    		$req="INSERT INTO article (titart, libart) VALUES ('$titart', '$libart')";
    		$result=mysql_query($req,$connexion);
    		if ($result){
    			print("Ajout de l'article <br/>");
    		}
    		else{
    			print("Erreur lors de l'insertion de l'article <br/>");
    		}
     
    		$requete1="SELECT * FROM article WHERE titart='$titart' AND libart='$libart'";
    		$curseur1=mysql_query($requete1,$connexion);
    		$enreg=mysql_fetch_object($curseur1);
     
    		echo '<br/>';
     
    		$numart=$enreg->noart;
    		$i=0;
    		foreach ($_FILES['monfichier']['name'] as $strnomp) {
    			$chemin="../images/".$strnomp;
    			$req="insert into image (ficimg, numart) values ('$chemin', $numart)";
    			$result=mysql_query($req,$connexion);
    			if ($result) {
    				print("Ajout de l'image <br/>");
    				if(move_uploaded_file($_FILES['monfichier']['tmp_name'][$i], getcwd()."/../images/".$strnomp)){
    					print ("Ok import effectué <hr/> ");
    				}
    				else{
    					echo 'Erreur lors de l import du fichier '.$strnomp;
    				}
    			}
    			else{
    				echo 'Erreur lors de l\'insertion de l\'image <br/>'. $req . '<br />' . mysql_error();
    			}
    			$i++;
    		}
        }
    J'ai resolvé mon probleme. Je vous poste mon code si ca peut aider quelqu'un dans la meme situation ...

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

Discussions similaires

  1. Problème insertions multiples dans fichier AS400
    Par Rémi R dans le forum Persistance des données
    Réponses: 2
    Dernier message: 11/03/2009, 17h42
  2. [Upload] Upload multiple de fichiers
    Par emageren dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2008, 01h38
  3. [Upload] download multiple de fichier
    Par cocale dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2008, 19h18
  4. [1.x] Upload multiple de fichiers via symfony
    Par phoelis1 dans le forum Symfony
    Réponses: 11
    Dernier message: 03/06/2008, 10h00
  5. [Upload] upload multiple de fichiers différents
    Par Sonny.j dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 17h23

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