Formulaire php fonction

Résolu
Bonjour,
j'ai un petit probléme lors de l'insertion d'une fonction je verifie si la fonction est deja présente pour cela dans la fonction j'ai fait une requete qui verifie la condition voila seulement le probléme est que rien ne s'insert et sa m'affiche a chaque fois Erreur deja présent:
function ajouterFonction($libelle) {
$req1 = "(select count(libelle) from fonctions where libelle ='".$libelle."')";
$sql1 = mysql_query($req1) or die ('Erreur lors de l\'insertion ');
if ( $sql1 >= 1)
{
echo "Erreur deja présent";
}
else
{
$req = "INSERT INTO fonctions(id_fonction,libelle) VALUES('','".$libelle."')";
$sql = mysql_query($req) or die('Erreur lors de l\'insertion de la nouvelle fonction');
return true;
}
}

si quelqun sait ou est l'erreur merci de m'aidé

ps:
BONNE ANNee
Configuration: Windows Vista
Internet Explorer 7.0

10 réponses

  1. bonjour,

    peut ton avoir le code complet?
    Merci d'utiliser la balise code. mettre le code entre les balises quand on clic sur l'icone de la page blanche avec <>

    bonne journée
    0
    1. bonjour
      le code est bien celui que j'ai fourni plus haut
      l'erreur est dans la fonction ajoutfonction
      
      function ajouterFonction($libelle) { 
      $req1 = "(select count(libelle) from fonctions where libelle ='".$libelle."')"; 
      $sql1 = mysql_query($req1) or die ('Erreur lors de l\'insertion '); 
      if ( $sql1 >= 1) 
      { 
      echo "Erreur deja présent"; 
      } 
      else 
      { 
      $req = "INSERT INTO fonctions(id_fonction,libelle) VALUES('','".$libelle."')"; 
      $sql = mysql_query($req) or die('Erreur lors de l\'insertion de la nouvelle fonction'); 
      return true; 
      } 
      } 
      
      


      le formulaire*

      <form id="ajoutfonction" name="ajoutfonction" method="post" action="services.php?a=liste">
      	<table>
          
      	<tr>
      		<td>Nom de la fonction :</td>
      		<td><input name="libelle" type="text" /></td>
      	</tr>
      	<tr>
      		<td><input name="submitajoutfonction" type="submit" value="Ajouter" /></td>
      
      
      <?php if($_POST['submitajoutfonction']=="Ajouter"): ?>
      		<?php ajouterFonction($_POST['libelle']) ?>
      		<img src="_img/tick.png" alt="Ok" title="Ok" /> <b class="vert">La fonction a été ajoutée correctement !</b><br /><br />
      <?php endif; ?>
      
      0
      1. Bonjour,

        l'erreur vient de là:

        if ( $sql1 >= 1)
        {


        mysql_query fait l'extraction de la base en fonction des critères de la reqête et mets ça dans une "zone mémoire"
        $sql1 te renvoie la ressource de cette zone ne aucun cas le nombre d'enregistrements trouvés

        pour connaitre le nombre il faut utiliser mysql_num_rows(), comme ça: (sans count())

        <?php
        function ajouterFonction($libelle) { 
        $req1 = "(SELECT libelle FROM fonctions WHERE libelle ='".$libelle."')"; 
        $sql1 = mysql_query($req1) or die ('Erreur lors de l\'insertion '); 
        if ( mysql_num_rows($sql1) > 0 ) 
        { 
        echo "Erreur deja présent"; 
        } 
        else 
        { 
        $req = "INSERT INTO fonctions(id_fonction,libelle) VALUES('','".$libelle."')"; 
        $sql = mysql_query($req) or die('Erreur lors de l\'insertion de la nouvelle fonction'); 
        return true; 
        } 
        } 
        0
      2. Bonjour

        mysql_query retourne une ressource pas le count de ta requête
        voici le code correcte

        function ajouterFonction($libelle) {
        $req1 = "(select count(libelle) from fonctions where libelle ='".$libelle."')";
        $sql1 = mysql_query($req1) or die ('Erreur lors de l\'insertion ');
        $count=mysql_fetch_array($sql1);
        if ( $count[0] >= 1)
        {
        .....
        0
    2. Si ta besoin d'aide pour tes code qui ne fonctionne pas bien ou affiche des message d'erreur viens sur le forum de se site http://www.morkotyx.123.fr il y a une rubrique exprès pour les code php et les administrateur de se site pourront t'aider
      0
      1. salut sur ton site je vient de m'inscrir mais a chauqe fois que je change de page par exempe je vait sur le forom pas moyen de mettre un sujet je me reconnect mais je suis pas reconnu en tant que membre lol
        donc si tu peut me help ici sa serait cool

        merci
        0
        1. Bonjour

          if ( $sql1 >= 1) Tu compares un ressource et un nombre, ça ne veut pas dire grand-chose..
          car mysql_query rend une ressource
          Pour en extraire un nombre de cette ressource, il faut utiliser mysql_fetch_array :
          $sql1 = mysql_query($req1) or die ('Erreur lors de l\'insertion '); 
          $nbr=mysql_fetch_array($sql1);
          if ( $nbr >= 1) 


          D'autre part, la requête n'a pas à être entourée de parenthèses :
          $req1 = "select count(libelle) from fonctions where libelle ='$libelle'";
          0
          1. pardon,
            if ($nbr[0]>1)
            car mysql_fetch_array() rend un tableau
            0
            1. sur le site http://www.morkotyx.123.fr il y a 2espace pour s'inscrire le premier espace visible dans le menu principal a droite te permet par la suite d'accéder au chat et a une messagerie interne
              le 2e endroit pour t'inscrire et dans le forum ou la tu pourra discuter des problème php et autre
              0
              1. merci j'ai pas pense a mysql_fetch_array

                sa marche nikel merci a tout le monde and happy new year
                0
                1. Si tu rencontre d'autre problème de se genre pense a notre site il pourra toujours t'aider
                  and Happy New Year
                  0
                  1. ok merci ji penserait c nice lol
                    0