Foreach : imbrication de variables

Eléphanteau du PHP | 31 Messages

15 oct. 2008, 17:57

Hello,
Toujours dans mes problème de boucles et de tableau, j'essaie d'imbriquer deux variables ($image_model, $pop_model) dans mon Foreach
$all_image_model = $image_model;
$all_image_model = $pop_model;

foreach($all_image_model["tmp_name"] as $key => $tmp_file)
    {
    if(!empty($tmp_file)) 
        {
        $content_dir = 'C:/Program files/EasyPHP 2.0b1/www/test/admin/model/';  
        $type_file = $all_image_model['type'][$key]; 
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
	
	$name_file = $image_model['name'][$key];
	$nom_model = $_POST['nom_model'][$key]; 
	$pop_file = $pop_model['name'][$key];
		
        //Enfin à la fin
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { 
            exit("Impossible de copier le fichier dans $content_dir"); 
            }
        else {// insertion dasn la BDD
	
Evidemment il y a un problème : les 2 varables ont le même nom et donc la 2eme écrase la premiere dans $content_dir. En fait je voulais un traitement identique pour ces deux variables mais des enregistrements différents.

Comment dissocier les variables dans $tmp_file ?

Merci
ce_l

ViPHP
ViPHP | 1996 Messages

15 oct. 2008, 20:05

Utilise une fonction :
mafonction ($image_model);
mafonction ($pop_model);
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 31 Messages

16 oct. 2008, 11:06

Hello,
Désolé je ne vois pas comment utilisé cette fonction, quoi que je fasse il me met une erreur

Code : Tout sélectionner

Fatal error : Call to undefined function mafonction()
Tu peux m'en dire un peu plus STP

Sinon pourquoi ce code ne marche pas :
$all_image_model = $image_model;
$all_image_model = $pop_model;

foreach($all_image_model["tmp_name"] as $key => $tmp_file)
    {
    if(!empty($tmp_file)) 
        {
        $content_dir = 'C:/Program files/EasyPHP 2.0b1/www/test/model/'; 
		        $type_file = $all_image_model['type'][$key]; 
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
	
	$name_file = $image_model['name'][$key];
	$nom_model = $_POST['nom_model'][$key]; 
	$pop_file = $pop_model['name'][$key];
	
		
        //Enfin à la fin
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file, $content_dir . $pop_file) ) { 
            exit("Impossible de copier le fichier dans $content_dir"); 
            }
        else {
c'est juste l'enriegistrement des 2 variables (. $name_file, $pop_file) qui foirent

Merci
ce_l

Eléphanteau du PHP | 31 Messages

17 oct. 2008, 14:25

Dsl de saouler! mais je ne trouve touours pas de solution
Help please
Merci

Eléphanteau du PHP | 31 Messages

20 oct. 2008, 13:11

Hello,
bon je continue toute seule de chercher sans grand succès :
Après la fonction que je n'arrive pas à appliquer je fais une copie à l'arrache qui ne marche pas non plus. Tout se passe bien pour la première partie de la boucle, la 2eme est ignorée
$all_image_model = $image_model;
$pop_image_model = $pop_model;

foreach($all_image_model["tmp_name"] as $key => $tmp_file)
    {
    if(!empty($tmp_file)) 
        {
        $content_dir = 'C:/Program files/EasyPHP 2.0b1/www/test/model/'; 
                $type_file = $all_image_model['type'][$key]; 
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
	
	foreach($pop_image_model["tmp_name"] as $key => $tmp_file2)
    {
    if(!empty($tmp_file2)) 
        {
		$content_dir2 = 'C:/Program files/EasyPHP 2.0b1/www/test/model/test/';
                $type_file = $pop_image_model['type'][$key]; 
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }

	
    $name_file = $image_model['name'][$key];
    $nom_model = $_POST['nom_model'][$key]; 
    $pop_file = $pop_model['name'][$key];
    
        
        //Enfin à la fin
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) && !move_uploaded_file($tmp_file2, $content_dir2 . $pop_file) )
		 { 
            exit("Impossible de copier le fichier dans $content_dir"); 
            }
        else { 
Logiquement ca me parait juste après, il ne copie pas dans $content_dir2 le fichier.
Dois-je supprimer le 2eme foreach pour inclure le 2eme traitement dans la première boucle (j'ai tout essayé, je ne vois pas comment), avec une fonction, ca ne marche pas non plus

Un petit peu d'aide serait la bienvenue
ce_l