Nom d'un fichier en php

kiki -  
 kiki -
salut !!

j'ai encore une question...
je voudrais fair un bout de script qui incrémente automatiquement les noms des fichiers au fur et a mesure qu'on les créent (mais en fait, les fichiers et leurs noms ne sont pas vus par les utilisateurs du sites et sont faient pour les stockées) . Par exemple, il a le nom c000001.doc et quand on en créé un autre il est à c000002.doc et ainsi de suite jusqu'a arriver au nieme enregistrement : c00000n.doc !!!
oulala...... je sais pas si j'ai été compréhensible !!!


en fait, je voudrais le mettre dans ce script mais je ne vois pas comment

<?php

//cnx à la bd
$bd = mysql_connect('localhost', 'login','mot de passe') or die ("erreur de connexion");
//séléction de la bd
mysql_select_db(courrier2, $bd) or die("erreur de connexion à la base");

// on récupere le no de l'expediteur
$query1 = "SELECT noexp FROM table1 WHERE nomexp = '$nomexp'";
$result1 = mysql_query($query1) or die ("La requete 1 a echoué ");
$lineexp = mysql_fetch_array($result1,MYSQL_NUM);
$noexp = $lineexp[0];
$nomexpediteur = $lineexp[1];

//on récupere le no du destinataire (table destinataire)
$query2 = "SELECT * FROM destinataire WHERE stedest = '$stedest'";
$result2 = mysql_query($query2) or die ("La requete 2 à échoué");
$linedest = mysql_fetch_array($result2);
$nodest = $linedest[0];
$nomdest = $linedest[1];
$stedesti = $linedest[2];
$adress = $linedest[4];
$villedest = $linedest[5];
$cpvilledest = $linedest[6];

//on récupere le no du modele
$query3 = "SELECT * FROM modele WHERE nommodele = '$modele'";
$result3 = mysql_query($query3) or die ("La requete 3 à échoué");
$linemod= mysql_fetch_array($result3);
$nomodel = $linemod[0];
$nommodel = $linemod[1];

//on incrémente le nom du fichier et on récupere le nom du fichier


//on insert les données dans la table table2
$query4 = "INSERT INTO table2 (date, objet, personnel, refnodest, refnomodele, refnoexp) VALUES ('$date', '$objet', '$personnel', $nodest, $nomodel, $noexp)";
$result4 = mysql_query($query4) or die("erreur");

$chaine = $date.";".$objet.";".$nomexpediteur.";".$stedesti.";".$adress.";".cpvilledest.";".$villedest.";".$nomdest."\n";

mysql_close();
$f=fopen("C:\modele\fusion.txt","w");
fputs($f,"date;objet;nom_auteur;nom_entrep;adresse,code_postal;ville;nom_dest\n");
fputs($f,$chaine);
fclose($f);
$ff=fopen("C:\modele\fich.txt","w");
fputs($ff,$nommodel."\n");
fclose($ff);
//$lien="titi";
$lien="file://pc1-13/modele/".$nommodel;

header("location:$lien");
?>
A voir également:

11 réponses

wiwimagique Messages postés 481 Date d'inscription   Statut Membre Dernière intervention   108
 
j'ai pas lu ton script mais il me semble qu'une solution consisterait a ecrire le numero n courant dans un fichier. tout simplement.
a chaque nouvelle creation, tu lis le nombre n courant, l'incremente de 1, cree ton fichier n+1 et reecris le fichier contenant n.
0
kiki
 
il faut aussi que ce nom de fichier rentre dans la table table2 (le nom de ce chps c'est nomfich)....
j'ai a peut pret compris ce que tu voulais dire mais ça reste un peu flou...
0
kiki
 
mais comme c'est une chaine, on ne peut pas l'incrémenter !!!
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Bonjour,
Faux, les chaes peuvent être incrémentées en PHP
(tout comme en Perl d'ailleurs)
<?php
$st="a0";
foreach ( range(0,50) as $i)
{
print ("$st\n");
$st++;
}
?>

Johan Daine


The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Bonjour ,
Je na sais pas ci cela peut t'aider , mais
sprintf est bien utile
<?php
foreach ( range(0,50) as $i)
{
$v1 = sprintf("file%010d", $i);
$v2 = sprintf("file%08d", $i);
print("$v1<br />\n$v2<br />\n");
}
?>

Johan Daine

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kiki
 
<?php
$st="a0";
foreach ( range(0,50) as $i)
{
print ("$st\n");
$st++;
}
?>

tu peux m'expliquer un peut plus ??? qu'est ce que c'est sprintf, ça veux dire quoi ???
ce qu'il ya en fait c'est quej'ai une lettre et des chiffres ... alors je ne sais pas du tout comment faire !
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Bonjour,
sprintf permet de construire une chaîne à l'aide
* d'une chaîne de formatage
"%08d" --> un nombre entier en décimal sur 8 caractères, justifié droit et complété par des "0"
"%010d" --> un nombre entier en décimal sur 10 caractères, justifié droit et complété par des "0"
Pour plus d'info
http://www.php.net/manual/fr/function.sprintf.php
(je ne connais pas la qualité de la traduction, je regarde tjrs la doc
en anglais)
Le résultat de l'incrémentation d'une chaîne commence
par le caractère de droite
Output de l'exemple (tronqué)
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
b0
b1
b2
b3
...

Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
kiki
 
ben moi en fait, ça sera tjs la meme lettre au début mais c'est les chiffres qui changent ...
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Bonjour
c000001.doc
Essaye un
$nomfic = sprintf("c%06%d.doc", $filenum);
print($nomfic);
Où récupères-tu le numéro du fichier?

Johan

The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
kiki
 
je le récupere pas vue que ce nom est unique !

$nomfic = sprintf("c%06%d.doc", $filenum);
print($nomfic);

pourquoi ya un "d" avant le ".doc" ???
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Bonjour,
erreur dans mon copier-coller
Il faut lire:
$nomfic = sprintf("c%06d.doc", $filenum);
Le "d" indique qu'il faut formater un entier sous représentation décimale.
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
kiki
 
et ça va faire quoi ???
0