Probleme if(isset....)

Lu, je vous donne deja le code

$nbrimg = 0;

if (isset($_FILES['file1']))
{
  $nbrimg++;
  $dest_dossier = './';
  $dest_fichier = 'image' . $id . '_1' . '.jpg';
  move_uploaded_file($_FILES['file1']['tmp_name'], $dest_dossier . $dest_fichier);
  }
  if (isset($_FILES['file2']))
{
  $nbrimg++;
  $dest_dossier = './';
  $dest_fichier = 'image' . $id . '_2' . '.jpg';
  move_uploaded_file($_FILES['file2']['tmp_name'], $dest_dossier . $dest_fichier);
  }
  if (isset($_FILES['file3']))
{
  $nbrimg++;
  $dest_dossier = './';
  $dest_fichier = 'image' . $id . '_3' . '.jpg';
  move_uploaded_file($_FILES['file3']['tmp_name'], $dest_dossier . $dest_fichier);
  }
  if (isset($_FILES['file4']))
{
  $nbrimg++;
  $dest_dossier = './';
  $dest_fichier = 'image' . $id . '_4' . '.jpg';
  move_uploaded_file($_FILES['file4']['tmp_name'], $dest_dossier . $dest_fichier);
  }
  
  mysql_query("UPDATE stock SET nbrimg='$nbrimg' WHERE id='$id'");

Ce code permet d’uploader des images et de les compter ($nbrimg), le probleme c’est que ma variable $nbrimg est egal a 4 tout le temp. Je pense que je n’ai pas compris toute les subtiliter du “isset” .
Si quelqu’un pouvait m’aider se serait cool.
Merci

Déjà, utilise ++$nbrimg, ça sera moins lourd.

Ensuite isset vérifie si la variable que tu lui passe éxiste. A priori, dans ton cas, elles existent toutes. Un petit conseil : utilise une boucle !

$nbrimg = 0;
for ($i = 1; $i <= 4; ++$i) {
   if (isset($_FILES['file' . $i])) {
      ++$nbrimg;
      $dest_dossier = './';
      $dest_fichier = 'image' . $id . '_' . $i .  '.jpg';
      move_uploaded_file($_FILES['file' . $i]['tmp_name'], $dest_dossier . $dest_fichier);
   }
} 

Ca t’évitera des tracasseries, et ça te permettra d’en ajouter facilement.

Je te conseille d’utiliser isset ET de vérifier si la chaine n’est pas vide. Peut-etre là est ton problème…

Sans-Nom, pourquoi ++$a serait moins lourd que $a++ ?

++$a = incrémenter $a, et renvoyer $a.
$a++ = créer une variable temporaire $b = $a, incrémenter $a, et renvoyer $b.

Si tu n’as pas besoin du mécanisme apporté par l’opérateur lvalue++ (idem pour lvalue–), inutile de t’en servir, utilise ++lvalue ou --lvalue.

ah, tu es sûr? Enfin en php je sais pas, en C j’aurais dit que :
++a = incrémenter a, mettre la valeur de a sur la pile
a++ = mettre la valeur de a sur la pile, incrémenter a

merci pour vos reponse je test ca cet aprem Bone journée

kremvax > en C++ j’aurais dis variable temporaire si tu as ton propre opérateur ++/-- :slight_smile:

En php/C ça doit être dans le même genre d’idée.