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 :

Compter les occurence d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 15
    Points
    15
    Par défaut Compter les occurence d'un tableau
    Bonjour,
    j'ai un formulaire comtenant 4 input de type file :
    <p><input type="file" name="annexes[]" id="fichier1" /></p>
    <p><input type="file" name="annexes[]" id="fichier2" /></p>
    <p><input type="file" name="annexes[]" id="fichier3" /></p>
    <p><input type="file" name="annexes[]" id="fichier4" /></p>
    L'utilisateur n'est pas obligé de les remplir tous. Il peux aussi bien n'en remplir aucun. Mon problème se situ dans mon php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(is_array($_FILES['annexes']));
            $nb_annexes = count ($_FILES['annexes']['name']);     
              {                        
                for($i = 0; $i< $nb_annexes; ++$i)
                  {
                      $annexe[$i]='tmp'.$t.'_'.$i.".jpg";
                      move_uploaded_file(($_FILES['annexes']['tmp_name'][$i]),$repertoire.$annexe[$i]);
                      $urlAnnexe[$i]= $urlsite.''.$repertoire.$annexe[$i].'';             
                  }              
                }
    Si je veux compter le nombre d'occurence dans annexes[], il me renverra toujours 4. J'ai bien essayé de coder quelque chose avec empty() ou "NULL" mais je n'arrive a rien.
    Auriez-vous (et je suis sur que oui ) une idée ?

    Merci a vous et bonne journée,

    Jean

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de raison que ca ne marche pas avec empty() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(is_array($_FILES['annexes']));
        foreach($_FILES['annexes'] as $i=>$file) {
              if (!empty($file['name'])) {
                      $annexe[$i]='tmp'.$t.'_'.$i.".jpg";
                      move_uploaded_file(($file['tmp_name'][$i]),$repertoire.$annexe[$i]);
                      $urlAnnexe[$i]= $urlsite.''.$repertoire.$annexe[$i].'';
               }    
                  }              
                }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Merci pour votre réponse mais je n'arrive pas a faire fonctionner votre boucle.

    A quoi correspond votre variable $value ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Oups pardon c'est $file pas $value
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Encore une fois merci, mais ...

    J'avais déjà essayé ca mais rien a faire. Mes images ne sont pas uploadés. Je ne comprend pas pourquoi ...

    Voila ce que me donne un

    echo 'Var FILES : '.count($_FILES).'<pre>';
    print_r($_FILES['annexes']); echo '</pre>';

    Var FILES : 2
    Array
    (
    [name] => Array
    (
    [0] => hppscan2.jpg
    [1] =>
    [2] =>
    [3] =>
    )

    [type] => Array
    (
    [0] => image/pjpeg
    [1] =>
    [2] =>
    [3] =>
    )

    [tmp_name] => Array
    (
    [0] => Z:/VMware/Programme/EasyPHP 2.0b1\tmp\php6D4.tmp
    [1] =>
    [2] =>
    [3] =>
    )

    [error] => Array
    (
    [0] => 0
    [1] => 4
    [2] => 4
    [3] => 4
    )

    [size] => Array
    (
    [0] => 311163
    [1] => 0
    [2] => 0
    [3] => 0
    )

    )

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    J' ais suivi ce fil depuis son début, mais je comprends mal pourquoi
    name="annexes[]"

    En général je prends pour méthode de repartir d'un principe, et sans trop le bousculer arriver a mon but !!

    alors moi je ferais

    upload0.php pour la saisie , a toi d'en remettre autant que tu veux,
    et attention au type déclaré pour le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    <html><body>
    <form name="formulaire" method="post"
     action="upload_ok.php"  enctype="multipart/form-data" >
     <input type="hidden" name="MAX_FILE_SIZE" value="40000" />
     <input id="fichier1"  name="fichier1" type="file"  /><br />
     <input id="fichier2"  name="fichier2" type="file"  /><br />
     <input value="Valider" name="submit" type="submit" />
    </form>
    </body>
    </html>
    Donc tu vois ce sont des fichier1 etc ....

    et la l'update est comme cela !

    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
     
     
    <?php
     
    if (isset($_FILES['fichier1'])) $Limage=trim($_FILES['fichier1']['name']);
        else $Limage="";
    if (isset($_FILES['fichier2'])) $Limage2=trim($_FILES['fichier2']['name']);
        else $Limage2="";
     
    //==== ETC... donc par exemple le premier
     
    $message="";
    if(  $Limage!="" )
     {
     $poid_max="40000"; 
     $destin="0workdesti/"; 
     $taille = getimagesize($_FILES['fichier1']['tmp_name']);
     $poid = filesize($_FILES['fichier1']['tmp_name']); 
     $message="";
     
     if(substr($Limage,-3) !="jpg")
       {$message="L image doit etre au format jpeg jpg";}
     if ($poid>$poid_max)
      {$message=" l image est trop lourde ... 40 Ko maxi";}
     if ($poid<=$poid_max && $message=="")
      {
       // === on supprime les accents et les espaces du nom de l'image 
       $Limage = strtr($Limage,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
        "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
       // === on supprime les espaces
       $Limage=str_replace(" ","_",$Limage);
       // === on met en minuscule
       $Limage=strtolower($Limage); 
       $newnom=$destin.$Limage;
       if (file_exists($destin.$Limage))
         {
            $message="L image est déjas sur le site web";
         }
         else
          {
          copy($_FILES['fichier1']['tmp_name'],$destin.$Limage);
          $imagefile=$destin.$Limage;
          $src_img = imagecreatefromjpeg($imagefile);
          $message="L image ".$newnom." est copiée";
         }
      }
     }
    echo ("".$message."<br />");
    echo ("".$Limage."");
    ?>

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Houps attention dans le fORM a
    multipart/form-data

    Et a la copie
    imagecreatefromjpeg

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Points : 15
    Points
    15
    Par défaut RESOLU
    Merci beaucoup pour ces explication FoxLeRenard
    J'étais parti sur un array (name="annexes[]" ) sur les conseil d'un forumeur.

    Problème résolu ...

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    je comprends mal pourquoi name="annexes[]"
    Pour ne pas avoir a se preoccuper de la numerotation des champs et donc pouvoir produire un traitement qui n'a pas besoin d'avoir en dur le nom des champs.

    En fait, je me suis trompé sur la structure du tableau recu.
    Ca doit marcher comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(is_array($_FILES['annexes']));
        foreach($_FILES['annexes']['error'] as $i=>$error) {
              if ($error == 0)) {
                      $annexe[$i]='tmp'.$t.'_'.$i.".jpg";
                      move_uploaded_file(($_FILES['tmp_name'][$i]),$repertoire.$annexe[$i]);
                      $urlAnnexe[$i]= $urlsite.''.$repertoire.$annexe[$i].'';
               }    
                  }              
                }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Compter les occurences dans un tableau trié
    Par degseb dans le forum Pascal
    Réponses: 2
    Dernier message: 10/01/2008, 16h34
  2. [FAQ] compter les occurences d'une chaîne dans un fichier
    Par cafeine dans le forum Contribuez
    Réponses: 3
    Dernier message: 25/07/2006, 11h21
  3. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  4. Compter les occurences d'un car dans une chaine/variable
    Par sherlockfr dans le forum Windows
    Réponses: 2
    Dernier message: 10/11/2005, 07h48
  5. Compter les valeurs d'un tableau
    Par leeloo076 dans le forum ASP
    Réponses: 6
    Dernier message: 30/03/2004, 13h29

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