Php incrementer un numero sur nom upload
Résolu/Fermé
jupiler
-
28 août 2009 à 11:55
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 3 sept. 2009 à 17:47
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 3 sept. 2009 à 17:47
A voir également:
- Php incrementer un numero sur nom upload
- Numero prive - Guide
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Nom de l'adresse - Forum Réseaux sociaux
- Numéro symbole ✓ - Forum Word
- Trouver un numéro de portable avec un nom ✓ - Forum Mobile
11 réponses
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
28 août 2009 à 12:05
28 août 2009 à 12:05
Et bien si tu incrémentes tous tes fichiers ayant le même nom de la même façon tu peux par exemple modifier ta requête en faisant :
"SELECT count(*) as nb FROM format WHERE nom_upload LIKE '" . $nom . "%'";
Comme ça tu récupères le nombre de noms qui commencent par le tien.
et tu ajoutes ce nombre + 1 à ta variable.
$nom = $nom . $data['nb'];
C'est ce que tu veux?
"SELECT count(*) as nb FROM format WHERE nom_upload LIKE '" . $nom . "%'";
Comme ça tu récupères le nombre de noms qui commencent par le tien.
et tu ajoutes ce nombre + 1 à ta variable.
$nom = $nom . $data['nb'];
C'est ce que tu veux?
merci pour ta reponse Passarinho44
je me pose une question ce qui veut dire que par exemple j ai
upload.jpg
il va va voir qu il y en a un ducoup il va l appeler upload2.jpg
mais si je reupload les deux fichiers n ont pas le même nom donc il va me créer upload2.jpg une autre fois non ?
je me pose une question ce qui veut dire que par exemple j ai
upload.jpg
il va va voir qu il y en a un ducoup il va l appeler upload2.jpg
mais si je reupload les deux fichiers n ont pas le même nom donc il va me créer upload2.jpg une autre fois non ?
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
28 août 2009 à 12:16
28 août 2009 à 12:16
C'est pour ça que je t'ai conseillé le count avec le LIKE $nom . "%'"
Ca va permettre que tous les fichiers commencant par upload par exemple vont etre récupérés et comptés donc si tu as upload.jpg et upload2.jpg, il va te sortir 2 donc tu ajoutes 1 et ça te fait upload3.jpg
Bien sur du coup ta première lignes pour le $nom n'est plus bon : il va falloir enlevé l'extention avant de faire ce test et la rajouter après
Ca va permettre que tous les fichiers commencant par upload par exemple vont etre récupérés et comptés donc si tu as upload.jpg et upload2.jpg, il va te sortir 2 donc tu ajoutes 1 et ça te fait upload3.jpg
Bien sur du coup ta première lignes pour le $nom n'est plus bon : il va falloir enlevé l'extention avant de faire ce test et la rajouter après
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
par contre ce st bizarre j ai mis
$result = mysql_query("SELECT count(*) as nb from format where nom_upload LIKE '" . $nom. "%'");
$count = mysql_result($result,0);
et il me dit
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in W:\upload\import-upload.php on line 38
nom.jpgok
$result = mysql_query("SELECT count(*) as nb from format where nom_upload LIKE '" . $nom. "%'");
$count = mysql_result($result,0);
et il me dit
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in W:\upload\import-upload.php on line 38
nom.jpgok
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
28 août 2009 à 12:59
28 août 2009 à 12:59
Essaie de faire :
$requete = "SELECT count(*) as nb from format where nom_upload LIKE '" . $nom. "%'";
echo $requete;
//$result = mysql_query($requete);
//$count = mysql_result($result,0);
Comme ça, tu vas afficher ta requete. Ensuite tu la lances dans ton SGBD et il te donnera plus de détails sur la provenance de l'erreur.
Si tu n'arrives pas à déchiffrer le message d'erreur n'éhistes pas à demander.
$requete = "SELECT count(*) as nb from format where nom_upload LIKE '" . $nom. "%'";
echo $requete;
//$result = mysql_query($requete);
//$count = mysql_result($result,0);
Comme ça, tu vas afficher ta requete. Ensuite tu la lances dans ton SGBD et il te donnera plus de détails sur la provenance de l'erreur.
Si tu n'arrives pas à déchiffrer le message d'erreur n'éhistes pas à demander.
pour l erreur j ai trouve probleme de nom de champ il ets temps de manger :-)
par contre le count fonctionne bine quand je fais un echo $count; il me renvoie un valeur que j attends
mais a ce niveau
$nom=$nom.$data['nb'];
il incrémente pas le numéro :-(
Merci
par contre le count fonctionne bine quand je fais un echo $count; il me renvoie un valeur que j attends
mais a ce niveau
$nom=$nom.$data['nb'];
il incrémente pas le numéro :-(
Merci
bon j ai trouvé une solution de remplacement qui marche nickel
$result = mysql_query("SELECT count(*) as nb from format where nom_upload LIKE '" . $nom. "%'") or die(mysql_error() );
$count = mysql_result($result, 0);
$nombre=1;
$count2=$count+$nombre;
if($count!= 0)
{
$nom=$nom.$count2;
}
merci encore Passarinho44
$result = mysql_query("SELECT count(*) as nb from format where nom_upload LIKE '" . $nom. "%'") or die(mysql_error() );
$count = mysql_result($result, 0);
$nombre=1;
$count2=$count+$nombre;
if($count!= 0)
{
$nom=$nom.$count2;
}
merci encore Passarinho44
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
28 août 2009 à 14:41
28 août 2009 à 14:41
Oui en fait c'était ça que je voulais que tu fasses : mon $name = $name . $data['nb'] c'était un exemple pour te dire de récupérer la valeur de la base de données
Sinon ton
$nombre=1;
$count2=$count+$nombre;
Tu peux le raccourcir en
$count++;
Et du coup tu peux mettre
$nom .= $count;
à la place de :
$nom=$nom.$count2;
Sinon ton
$nombre=1;
$count2=$count+$nombre;
Tu peux le raccourcir en
$count++;
Et du coup tu peux mettre
$nom .= $count;
à la place de :
$nom=$nom.$count2;
paulito47
Messages postés
8
Date d'inscription
jeudi 3 septembre 2009
Statut
Membre
Dernière intervention
28 juillet 2011
3 sept. 2009 à 16:12
3 sept. 2009 à 16:12
J'ai un peu le même problème. le site est protégé par des sessions. Lorsque l'utilisateur est authentifié il peut ajouté des photos. Un répertoire alors se crée au nom du login de l'utilisateur. Lorsque je veux ajouter une photo, elle s'insère dans le bon dossier. le problème est que lorsque j'ajoute une nouvelle photos elle écrase la précédente. Comment dois-je faire?
voici mon code:
formulaire:
<form name="ajout_photo" method="post" action="pages/add_photo.php" enctype="multipart/form-data">
Titre de Votre photo : <input type="text" name="titre" maxlength="30" size="30" /> (50 caractères)
Description de Votre photo : <input type="text" name="description" maxlength="250" size="50" /> (80 caractères)
Chargez votre logo : <input type="file" name="photo_gd" /><input type="hidden" name="MAX_FILE_SIZE" value="20480" />
<input type="hidden" name="login" value="<?php echo "$enr_verif_user->login"; ?>" /></p>
<input type="hidden" name="id_user" value="<?php echo "$enr_verif_user->id_user"; ?>" /></p>
<p>Date : <?php echo date('Y-m-d'); ?><input type="hidden" name="date" value="<?php echo date('Y-m-d'); ?>" /></p>
<input type="submit">
</form>
Page d'ajout:
$requete_reccup = "SELECT * FROM photo";
$result_reccup = @mysql_query($requete_reccup);
$enr_reccup = @mysql_fetch_object($result_reccup);
// Protection des données
$titre = addslashes($_POST['titre']);
$description = addslashes($_POST['description']);
$id_user = addslashes($_POST['id_user']);
$login = addslashes($_POST['login']);
$date=$_POST["date"];
if ($_FILES['photo_gd']['type'] != 'image/png' && $_FILES['photo_gd']['type'] != 'image/jpeg' && $_FILES['photo_gd']['type'] != 'image/jpg' && $_FILES['photo_gd']['type'] != 'image/gif')
{
echo"Le fichier doit être au format *.jpeg, *.gif ou *.png .";
}
else{
// Insertion dans la BDD
$requete_ph = "INSERT INTO photo VALUES('', '$titre', '$description', '$date', '', '$id_user')";
$result_ph = mysql_query($requete_ph);
@mysql_close();
// Enregistrement de l'image
if(!empty($_FILES['photo_gd']['name']))
{
$original = basename($_FILES["photo_gd"]["name"]);
$temporaire = $_FILES["photo_gd"]["tmp_name"];
$nom = $login;
$upload = '../img/' . $login . '/';
if(!is_dir($upload)){mkdir($upload);}
$resultat = move_uploaded_file($_FILES['photo_gd']['tmp_name'],$upload.'/'.$nom.'.jpg');
if ($resultat) echo "Transfert réussi";
/*$final = "../img/test.jpg";
//$final = "../../images/logo_pro/test.jpg";
move_uploaded_file($temporaire,$final);*/
}
header('Location: ../index.php');
}
voici mon code:
formulaire:
<form name="ajout_photo" method="post" action="pages/add_photo.php" enctype="multipart/form-data">
Titre de Votre photo : <input type="text" name="titre" maxlength="30" size="30" /> (50 caractères)
Description de Votre photo : <input type="text" name="description" maxlength="250" size="50" /> (80 caractères)
Chargez votre logo : <input type="file" name="photo_gd" /><input type="hidden" name="MAX_FILE_SIZE" value="20480" />
<input type="hidden" name="login" value="<?php echo "$enr_verif_user->login"; ?>" /></p>
<input type="hidden" name="id_user" value="<?php echo "$enr_verif_user->id_user"; ?>" /></p>
<p>Date : <?php echo date('Y-m-d'); ?><input type="hidden" name="date" value="<?php echo date('Y-m-d'); ?>" /></p>
<input type="submit">
</form>
Page d'ajout:
$requete_reccup = "SELECT * FROM photo";
$result_reccup = @mysql_query($requete_reccup);
$enr_reccup = @mysql_fetch_object($result_reccup);
// Protection des données
$titre = addslashes($_POST['titre']);
$description = addslashes($_POST['description']);
$id_user = addslashes($_POST['id_user']);
$login = addslashes($_POST['login']);
$date=$_POST["date"];
if ($_FILES['photo_gd']['type'] != 'image/png' && $_FILES['photo_gd']['type'] != 'image/jpeg' && $_FILES['photo_gd']['type'] != 'image/jpg' && $_FILES['photo_gd']['type'] != 'image/gif')
{
echo"Le fichier doit être au format *.jpeg, *.gif ou *.png .";
}
else{
// Insertion dans la BDD
$requete_ph = "INSERT INTO photo VALUES('', '$titre', '$description', '$date', '', '$id_user')";
$result_ph = mysql_query($requete_ph);
@mysql_close();
// Enregistrement de l'image
if(!empty($_FILES['photo_gd']['name']))
{
$original = basename($_FILES["photo_gd"]["name"]);
$temporaire = $_FILES["photo_gd"]["tmp_name"];
$nom = $login;
$upload = '../img/' . $login . '/';
if(!is_dir($upload)){mkdir($upload);}
$resultat = move_uploaded_file($_FILES['photo_gd']['tmp_name'],$upload.'/'.$nom.'.jpg');
if ($resultat) echo "Transfert réussi";
/*$final = "../img/test.jpg";
//$final = "../../images/logo_pro/test.jpg";
move_uploaded_file($temporaire,$final);*/
}
header('Location: ../index.php');
}
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
3 sept. 2009 à 17:47
3 sept. 2009 à 17:47
Elle écrase la précédente car elle a le même nom.
Pour éviter ça je te conseille de faire une liste des fichiers déjà existants dans le dossier.
Ensuite tu récupères le nombre de fichiers dans ce dossier.
Puis tu rajoutes à la suite du nom, le nombre de fichiers + 1.
Voila un petit bout de code trouvé sur le net pour savoir le nombre de fichiers dans un dossier:
<?php
$nb_f = 0;
$opdir = opendir($repimages);
while ($c = readdir($opdir))
{
if (!is_dir($c)) $nb_f++;
}
closedir($opdir);
echo ("Nombre de fichiers : ".$nb_f);
?>
Pour éviter ça je te conseille de faire une liste des fichiers déjà existants dans le dossier.
Ensuite tu récupères le nombre de fichiers dans ce dossier.
Puis tu rajoutes à la suite du nom, le nombre de fichiers + 1.
Voila un petit bout de code trouvé sur le net pour savoir le nombre de fichiers dans un dossier:
<?php
$nb_f = 0;
$opdir = opendir($repimages);
while ($c = readdir($opdir))
{
if (!is_dir($c)) $nb_f++;
}
closedir($opdir);
echo ("Nombre de fichiers : ".$nb_f);
?>