IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probleme de doublons sur nommage automatique de photo [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut probleme de doublons sur nommage automatique de photo
    Bonjour,

    J'ai une galerie photo à laquelle je peux ajouter des photos via un formulaire.
    Mes photos se nomment automatiquement via un mysql_num_row, bien pratique au demeurant...

    Ci-dessous mon code pour plus de clarté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $sql = "select * from GALERIES where GALERIE_SPECTACLE ='".$ID."'";
    $req = mysql_query($sql);
    $NUM = mysql_num_rows($req);
     
    	$uploaddir = $_SERVER['DOCUMENT_ROOT']."images/galeries/";
     
    for ($i = 0; $i < count($_FILES['photo']['tmp_name']); $i++ ){
    list($tmp_nom,$ext) = explode('.',$_FILES['photo']['name'][$i]);
    $name = $ID."-".$NUM.".".$ext;
     
    $LEGENDE = $_POST['GALERIE_LEGENDE'][$i];
     
    $insertPhoto = move_uploaded_file($_FILES['photo']['tmp_name'][$i], $uploaddir.$name);
     
     
    $insertTable ="insert into GALERIES(GALERIE_ID, GALERIE_PHOTO, GALERIE_LEGENDE, GALERIE_SPECTACLE) values ('', '".$name."','".$LEGENDE."', '".$ID."')";
    $resinsertTable = mysql_query($insertTable) or die('erreur SQL: '.$insertTable);
    $NUM++;
    }
    Mon problème est que si par ailleurs je supprime la photo $ID-2.jpg sur un total de 6 photos, et qu'ensuite j'ajoute une nouvelle photo dans ma galerie, $NUM retournera 6 et m'écrasera ma photo $ID-5.jpg

    Donc ma méthode n'est pas bonne, ou bien il me faudrait un moyen d'éviter d'écraser une photo qui existe déjà.
    Merci pour votre aide qui je l'espère éclairera ma lanterne pour l'instant à 15 watts.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Essaie de prendre l'id de la photo dans ta base de données et non pas le résultat de mysql_num_rows.
    Au moins, tu garantiras le fait qu'il n'y ait pas de doublons possibles.

    Pour obtenir l'identifiant d'un tuble en incrément auto. , tu peux utiliser la commande mysql-insert-id

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    +1
    Ou tu peux générer un id_photo basé sur la date (aaaammjjhhmmss).
    Peu de chances que tu insères 2 photos à la même seconde.

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    OK, je vais voir avec le last_insert_id(), car avec la date et l'heure je ne peux pas. J'ai dans mon application la possibilité d'enregistrer plusieurs photos en une seule fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_FILES['photo']['name'][$i]
    //ici le [$i] me permet de le faire
    donc les photos s'écrasent les unes les autres avec la date et l'heure à la validation du formulaire.
    L'ID de la photo est une bonne idée.
    Merci

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bon j'ai fais mon insert, puis une fonction mysql_insert_id, puis un update... Je ne sais pas si c'est joli mais ça fonctionne.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2010, 09h14
  2. Probleme de pointeur sur une fonction
    Par nicky78 dans le forum C
    Réponses: 2
    Dernier message: 23/05/2004, 20h26
  3. [C#] problème si clic sur "précédent"
    Par moimoimoi dans le forum ASP.NET
    Réponses: 13
    Dernier message: 11/03/2004, 15h30
  4. Réponses: 2
    Dernier message: 19/08/2003, 18h04
  5. probleme d'installation sur d'autres postes
    Par VBkiller dans le forum Composants VCL
    Réponses: 4
    Dernier message: 18/09/2002, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo