upload et nom d'image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : upload et nom d'image

par Cyrano » 14 déc. 2005, 12:06

[Résolu] :?:

par romo » 14 déc. 2005, 11:36

:) c bon j'ai remis mes lunettes et sa marche !!

merci de ton aide c'est gentil !!!

par Cyrano » 14 déc. 2005, 11:34

Je t'ai montré un exemple précisément :

Code : Tout sélectionner

SELECT MAX(id) FROM ta_table
Remplace le nom de la table par son véritable nom et le nom du champ identifiant par son vrai nom : essaye ça directement dans phpMyAdmin pour commencer, ça te donnera une première idée.

par romo » 14 déc. 2005, 11:25

Jsuis désolé d'être bennet mais j'arrive pas à récuperer le MAX(id) .... :(

Tu pourrais me montrer un exemple?? svp

par Cyrano » 14 déc. 2005, 11:01

Je te l'ai indiqué dès le départ : pour récupérer le dernier index généré par une insertion, utilise la fonction SQL MAX() qui va te retourner la plus grande valeur de la colonne.

par romo » 14 déc. 2005, 10:55

A oui ???!!!

Tu fais bien de me le préciser!!!
Sinon je c bien que c'est pas terrible ce systeme pour nommer les images mais on me demande de faire comme sa ....

Comment je peut faire alors??

par Cyrano » 14 déc. 2005, 10:52

Un truc que j'utilise personnellement, c'est la génération automatique d'un nom de fichier basé sur la date et l'heure courante : de cette manière, il y a fort peu de chances pour que j'aie deux fois le même nom de fichier. En supposant que deux personnes fassent un upload simultané, alors ajoute un autre élément distinctif pour assurer le coup.

Ceci dit, je te signale également que mysql_insert_id ne fonctionne qu'après un insert, pas avant. Si le précédent fichier a été insérer la veille, la fonction ne retournera rien ou une erreur.

par romo » 14 déc. 2005, 10:40

Ben en fait je cherche tout simplement à nommer mais image 1.jpg, 2.jpg etc...

donc vu que l'id s'autoIncremente .... j'me suis dis...

comment je peux faire sinon?

par Cyrano » 14 déc. 2005, 10:36

Alors il y a une chose qu'il me semble important de préciser: il faut éviter d'utiliser une clé primaire pour autre chose que l'indexation d'un champ. La clé primaire ne sert (et ne doit servir) qu'à repérer précisément une ligne dans une table et à faire des liens avec des données dans une autre table si besoin est via un système de clés étrangères.

La suggestion que je ferais est donc d'avoir un système de nommage de fichiers indépendants de la clé primaire. Je soupçonne que tu cherches à éviter d'avoir des "trous" dans la suite des identifiants, mais ça ne sert strictement à rien en plus de risquer de te poser des problèmes sérieux à terme.

par romo » 14 déc. 2005, 10:29

J'suis d'accord avec toi le problème c'est que si je supprime un champ le MAX(id) est faussé....?

Du coup j'ai fais comme sa :
$sql = mysql_query("INSERT INTO $table(photos) Values('')");
$id = mysql_insert_id();
$name = mysql_insert_id().".jpg";
$file = mysql_query("UPDATE $table SET photos='$name' WHERE id='$id'");
je sais c'est pas beau mais sa marche

Si quelqu'un à une meilheure solution??
Le but étant t'attribuer comme nom à l'image son numéro d'id,
merci d'avance!

par Cyrano » 14 déc. 2005, 10:21

C'est possible à la condition de connaître cet identifiant au moment de l'enregistrement: ce qui te force dont à une première requête pour déterminer quel est le dernier identifiant avec quelque chose du style

Code : Tout sélectionner

SELECT MAX(id) FROM ta_table
Ensuite, tu incrémentes le résultat et tu fais ton enregistrement.

par romo » 14 déc. 2005, 05:12

personne pour m'aider ....??

upload et nom d'image

par romo » 14 déc. 2005, 03:49

Salut à tous,

suite a mon dernier post pas très comprehensif je trouve... je vous pose la même question mais en plus simple :

Est-il possible lors d'un upload d'image, de lui attribuer comme nom, son numéro d'id + son extension... genre id.".jpg"; afin d'obtenir comme résultat:
1.jpg, 2.jpg, 3.jpg ...

merci d'avance ;)