Incrementation en php [Résolu]

Signaler
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012
-
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012
-
bonjour

en faite dans mon formulaire, on peut upload un fichier mais le pb j'aimerai genere un code qui s'increment a chaque upload de fichier pour pouvoir renommer ce fichier avec le code generer. Comme ca pas de doublon

je sais pas du tout comment mis prendre
auriez vous une idée?

merci

8 réponses

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
j'ai un truc qui va ptêt t'intéresser, j'ai codé ça il y a 3 semaines :



function testexistence($chemin, $fichier){



if(file_exists($chemin.$fichier)){



$fichier = explode('.', $fichier);



ereg ("[0-9]{1,2}", $fichier[0], $regs);

if($regs == "") {

$fichier[0] .= "(1)";

}

else {

$fichier[0] = str_replace($regs[0], $regs[0]+1, $fichier[0]);

}



$fichier = $fichier[0].'.'.$fichier[1];

$fichier = testexistence($chemin, $fichier);

}



return $fichier;

}



en gros ça fait la même chose que les copies de
fichier sous windows: tu donnes le chemin du répertoire où tu upload,
le nom du fichier que tu upload, et ça te renvoie le même nom si le
fichier existait, ou alors nomfichier(1).extension s'il existait déjà, nomfichier(2).extension si nomfichier(1).extension existait déjà, ainsi de suite.

Par contre, les noms de fichiers ne doivent pas contenir de chiffre, mais tu peux modifier ma fonction facilement sinon.

en espérant que ça te convienne
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Re,

Euh ...

$cheminPhoto = time() . $code_image . '_photo' . $extension;
Et
pui, en incrementant aussi. Tu fais un boucle pour calculer le nombre
de fichier et tu met ce nombre dans le nom de ton fichir +1 ^^
<hr>Si ma reponse te convient, merci de l'accepter !
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012

voila comment j'ai fait

je recupere l'ident de la derniere reference dans la base

mysql_select_db($database_roots, $roots);
$query_aff_ident = "SELECT ident FROM database ORDER BY ident DESC";
$aff_ident = mysql_query($query_aff_ident, $roots) or die(mysql_error());
$row_aff_ident = mysql_fetch_assoc($aff_ident);
$totalRows_aff_ident = mysql_num_rows($aff_ident);

ensuite je lui ajoute 1

$id_code = $row_aff_ident['ident'];
$id_code2 = $id_code + 1;

enfin je renomme le fichier

$cheminextrait =$id_code2."_".$code."_extrait".$extension1;
rename($_FILES["file_extrait"]["tmp_name"], $cheminextrait);

nb: $code est simplement la pour auca ou y'ai 2 ident pareille (meme si c pas possible mais bon on sais jamais) il est generer par une fonction

++
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012

je pense que ca devrai aller, je vait essayer de mettre ca en place et je te donnerai des nouvelle

mon souci est simplement qu'il risuqe d'avoir beaucoup d'image

et vu que je genere un code de 64 caractere avant
si en + de ca ya ton, il ne devrai pas avoir de pb

merci a toi
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Lu, ou il y a plus imple. Tu le renomme en time(). Ex si tu utilise
$_FILES



move_uploaded_file($_FILES['fichier_source']['tmp_name'], time() . $nom);



Et de cette facon tu auras la possibilité d'avoir
1 image par secondes jusqu'en 2038 ^^ Puis tu peux coupler avec le
script de Evangun ay cas ou il y aurais deuc internautes en meme temp
<hr>Si ma reponse te convient, merci de l'accepter !
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012

et si je met date dans mon code d'origne ca peut tres bien marcher non ?

$cheminPhoto =time()$code_image."_photo".$extension;
rename($_FILES["maphoto"]["tmp_name"], $cheminPhoto);
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012

ou alors je recupere l'id de la derniere reference je lui ajout 1

et je rennome le fichier avec cet ident
Messages postés
346
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
26 mars 2012

ok merci bien