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 :

vérifier l'existance d'un enregistrement avant insertion [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut vérifier l'existance d'un enregistrement avant insertion
    salut voici mon projet:
    j'ai une base de données dont les tables sont remplies via un formulaire.
    l'utilisateur entre son code et la période de l'enregistrement (mois, trimestre, année) et d'autres infos. il ne doit y avoir qu'un seul enregistrement pour la même période faite par le même utilisateur. je voudrais donc vérifier qu'il n'existe pas un enregistrement pour la même période faite par l'utilisateur avant d'accepter l'insertion de l'enregistrement. j'ai commencé d'abord par sélectionner les enregistrements effectués par utilisateur et je récupère le mois, le trimestre et l'année pour pouvoir les comparer avec ceux que l'utilisateur vient d'entrer;
    bien entendu je récupère aussi par $_POST[] les valeurs de mois, trimestre et année ($mois_s; $trim_s et $annee_s) que l'utilisateur a entrées dans le formulaire pour faire la comparaison.
    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql=mysql_query("SELECT tmois, trim,annee FROM DEC where code='$codeuser'");//$codeuser contient le code que l'utilisateur a entré
    $rw=mysql_fetch_assoc($sql);
    $mois=$rw['mois'];
    $trim=$rw['trim'];
    $annee=$rw['annee'];
    mais je bloque pour la vérification.
    ensuite je fait un INSERT dans ma table pour y mettre les valeurs saisies
    quelqu'un peut me donner une idée pour la suite? merci

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    t'as qu'à tester sur le résultat du select s'il existe au moins un enregistrement donc l'utilisateur n'as plus droit.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    c'est sur le test du select que je bloque en fait

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $result_query = mysql_query("select tmois, trim,annee FROM DEC where code='$codeuser' and epoque='$epoqueuser'");
    if(mysql_num_rows(result_query) > 1)
     echo "vous êtes déjà enregistrer pour cet époque";
    else{
    // la suite
    }

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    il ne doit y avoir qu'un seul enregistrement pour la même période faite par le même utilisateur
    Si une période et aussi la condition pour faire une insertion (avec celle de l'utilisateur), il faut donc la rajouter dans ta requête.

    Si une période c'est l'ensemble de : tmois, trim,annee
    Alors ce serait une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $rs_verif = mysql_query("SELECT COUNT(*) AS total WHERE tmois = '$tmois' AND trim='$trim' AND annee = '$annee' AND code = '$codeuser'");
     
    $verif = mysql_fetch_array($rs_verif);
    if ((int)$verif ['totla'] <= 0) {
      // On peu faire une insertion
    }

    PS : Plus rapide Thes32

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $rs_verif = mysql_query("SELECT COUNT(*) AS total WHERE tmois = '$tmois' AND trim='$trim' AND annee = '$annee' AND code = '$codeuser'");
     
    $verif = mysql_fetch_array($rs_verif);
    if ((int)$verif ['totla'] <= 0) {
      // On peu faire une insertion
    }

    PS : Plus rapide Thes32
    quand j'utilise ce code, je recois le message d'erreur suivant :Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    autant pour moi je n'avais pas préciser la table dans ma requête. ca marche maintenant. merci

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

Discussions similaires

  1. Vérifier l'existence d'un enregistrement avant insertion
    Par patnership dans le forum Général Java
    Réponses: 5
    Dernier message: 19/02/2015, 13h05
  2. Vérifier la présence d'un enregistrement avant insertion
    Par Avatar36 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/01/2015, 22h38
  3. [MySQL] Vérifier l'existance d'une entrée avant l'insertion dans une BD
    Par mitchb dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/02/2008, 13h30
  4. Tester l'existence d'un enregistrement avant son ouverture
    Par Fredo67 dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/01/2008, 17h15
  5. [MySQL] Vérification de la présence d'enregistrement avant insertion
    Par Odilon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/09/2005, 15h30

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