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 Test d'existance [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut probleme Test d'existance
    Bonjour tout le monde,

    alors voila mon problème :

    J'ai une base de donnée equipe composée d'un Id, Nom, Niveau, et Sexe.
    J'ai un formulaire d'ajout d'équipe ou je peux faire le choix avec le niveau et le sexe.

    j'ai 2 fonctions pour empêcher d'avoir le même niveau ET le même sexe,alors que le nom est toujours pareil.

    Mais lorsque j'envoie les données, au lieu de me les enregistrer lorsque l'équipe est bien valable, il passe directement dans la partie ou l'équipe est déjà existante.

    voici donc mon test :

    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
     
            require('fonctions.inc.php');
    	echo 'Enregistrement en cour...<br><br>';
    	$Niveau = htmlentities ($_POST['chxniveau']);
    	$Sexe = htmlentities ($_POST['chxsexe']);
     
     
      if ((check_Niveau_Equipe($Niveau)==false) && (check_Sexe($Sexe)==false)){
     
    			  mysql_connect ($db_server, $db_user, $db_pass);
     	  		  mysql_select_db($db);
    		      mysql_query("INSERT INTO Equipe(ID, Nom, Division, Sexe) VALUES ('', RADS, '$Niveau', '$Sexe' )")or die(mysql_error());;
    		      mysql_close();
     
    	  		  echo 'Enregistrement Terminer.<br><a href=Ajout_Equipe.php>Retour</a><br>';
    	  		  echo 'nom : ' . $Nom . '<Br>Division : ' . $Niveau . '<br>Sexe : ' . $Sexe;
    	   } else {
          		  echo 'Equipe existante. <a href=Ajout_Equipe.php>Retour</a>';
        	}
    et voici mes 2 fonctions

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
    // Savoir si l'Equipe existe deja
     
     
    function check_Niveau_Equipe($Division) {
      require ('config.php');
      $trouver_check_Niveau = false;
     
      mysql_connect($db_server, $db_user, $db_pass);
      mysql_select_db($db);
     
      $sql = 'SELECT `Division` FROM `equipe`' ;
      $result = mysql_query($sql);
     
      $num = mysql_numrows($result);
      mysql_close();
     
      $i = 0;
      while ($i < $num) {
        $laDivision = mysql_result ($result, $i, 'Division');
        if ($laDivision == $Division) {
          $trouver_check_Niveau = true;
        }
        $i++;
      }
     
      if ($trouver_check_Niveau == true) {
        return (TRUE);
      } else {
        return (FALSE);
      }
    }
    // -----------------------------------------------------------------------------
     
    // Savoir si l'Equipe existante est de meme sexe
     
     
    function check_Sexe( $Sexe ) {
      require ('config.php');
      $trouver_Sexe = false;
     
      mysql_connect($db_server, $db_user, $db_pass);
      mysql_select_db($db);
     
      $sql = 'SELECT `Sexe` FROM `equipe`' ;
      $result = mysql_query($sql);
     
      $num = mysql_numrows($result);
      mysql_close();
     
      $i = 0;
      while ($i < $num) {
        $lesexe = mysql_result ($result, $i, 'Sexe');
        if ($lesexe == $Sexe) {
          $trouver_Sexe = true;
        }
        $i++;
      }
     
      if ($trouver_Sexe == true) {
        return (TRUE);
      } else {
        return (FALSE);
      }
    }
    // -----------------------------------------------------------------------------
    J'ai déjà effectuer un autre test quasiment identique pour une autre partie du site et celui ci fonctionne très bien...alors je ne vois pas d'où peut venir le problème...j'ai vérifier tous les noms de tables et de variables et tout m'a l'air correct..

  2. #2
    Membre confirmé Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Par défaut
    salut
    on dirait que c'est le même problème que quelqu'un d'autre avait eu il y a très peu
    Je n'ai pas le temps de me plonger dans le code, mais juste une remarque en passant

    attention quand on veut faire des "et" avec des "not".
    sématiquement "non A et non B " sécrit
    ! ( a && b )
    -> ! a || ! b

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Par défaut
    Citation Envoyé par Merfolk Voir le message
    salut
    sématiquement "non A et non B " sécrit
    ! ( a && b )
    -> ! a || ! b
    ?????

  4. #4
    Membre confirmé Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Par défaut
    ok je traduis

    mathématiquement

    non ( A et B)
    devient
    (non A OU non B)

    et non pas
    non A ET non B

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Par défaut
    Citation Envoyé par Merfolk Voir le message
    ok je traduis

    mathématiquement

    non ( A et B)
    devient
    (non A OU non B)

    et non pas
    non A ET non B
    Je suis d'accord, mais relis ton message plus haut...

    sématiquement "non A et non B " sécrit
    ! ( a && b )
    Là, nan.

  6. #6
    Membre confirmé Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Par défaut
    oui je suis d'accord ce n'était pas très clair

    kinkinhxc, ton raisonnement te semble juste pourtant c'est faux.
    Regarde cette table de correspondance
    (désolé présentation pourrie...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    chkniveau ChkSex (! A ou  ! B) (!A  et ! B)
    1	1	FAUX	FAUX
    0	0	VRAI	VRAI
    1	0	VRAI	FAUX
    0	1	VRAI	FAUX
    d'ailleurs même "informatiquement"
    en écrivant non A et non B
    - si A te renvoie false, ce qui signifie que niveau le niveau n'existe pas encore, donc c'est bon...non A -> ça va te donner TRUE, tout va bien
    - Deuxième étape ...checkSexe, supposons que ça existe B -> te renvoie TRUE, "non B te renvoie FALSE"
    - Troisième étape A et B -> TRUE && FALSE -> FALSE
    Ce n'est pas ce que tu voulais


    si tu écris
    (!A et !B et ! C et !D )... ça signifie concrètement, il faut que tout soit faux pour rentrer dans ton IF..si un seul paramètre vaut true, tu passes dans le else...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Citation Envoyé par Merfolk Voir le message
    salut
    on dirait que c'est le même problème que quelqu'un d'autre avait eu il y a très peu
    Je n'ai pas le temps de me plonger dans le code, mais juste une remarque en passant

    attention quand on veut faire des "et" avec des "not".
    sématiquement "non A et non B " sécrit
    ! ( a && b )
    -> ! a || ! b
    mon && m'a l'air parfaitement correct pourtant...il faut que les deux conditions soient réunies...donc dans les fonctions je retourne false quand je ne trouve pas de correspondance...et true s'il existe déjà...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/11/2005, 14h02
  2. probleme test presence d'un fichier(avec fso)
    Par pagez dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/08/2005, 15h24
  3. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38
  4. Création vue avec test d'existence
    Par yan77 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/12/2004, 11h44
  5. test d'existence de table
    Par Ilùvatar dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 29/08/2004, 22h07

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