Partage
  • Partager sur Facebook
  • Partager sur Twitter

gestion de formulaire

sql ou php?

    22 juin 2006 à 18:22:51

    Salut,
    ben j'ai fais un formulaire d'inscription et avec une page de traitement, jusque là tout va bien... Mais je ne sais pas comment introduire une condition qui signifirait quelque chose comme:"si le pseudo et l'adresse email existent déjà dans la table sql , afficher l'erreur : le pseudo est déjà choisi ou l'adresse email existe déjà dan la table , choisi un autra pseudo ou entre une adresse valide. "
    Si quelqu'un voudrait bien m'aider trois semaines que je galère sur juste un formulaire d'inscription , j'aimerais avancer.
    Merci à tous.
    • Partager sur Facebook
    • Partager sur Twitter
      22 juin 2006 à 18:25:58

      Il te suffit de faire une requête COUNT (ou utiliser mysql_num_rows) pour compter combien de fois le pseudo entré est dans la table. S'il ne l'est pas, tu peux enregistrer. Et pareil pour l'e-mail :)

      ++
      • Partager sur Facebook
      • Partager sur Twitter
        22 juin 2006 à 19:51:57

        Salut,
        merci pour l'astuce mais comment je fais pour l'intégrer dans les conditions , je mets juste:
        "

        <?php
        if(isset($_POST['valider'])
        {
        //traitement
        if(mysql_query(COUNT $_POST['pseudo'] FROM membres WHERE id, pseudo)
        {
        }
        ?>

        "
        c'est comme ça qu'on l'utilise , bref je réfléchirai dessus et je vais me renseigner sur la doc et merci pour ta précieuse aide aimak.
        à plus.
        • Partager sur Facebook
        • Partager sur Twitter
          22 juin 2006 à 20:42:18

          Je te conseille d'aller relire le cours sur les conditions, et sur les requêtes. Visiblement il y a un problème de ce côté-là :p


          $q = mysql_query("SELECT COUNT(*) AS nb FROM membres WHERE pseudo='".$_POST['pseudo']."'") or die (mysql_error());
          $a = mysql_fetch_array($q);
          if ($a['nb'] == 0) { // on peut enregistrer
          }
          else {
            echo $_POST['pseudo'].' est un pseudo déjà utilisé !';
          }
          • Partager sur Facebook
          • Partager sur Twitter
            22 juin 2006 à 22:16:08

            lol non je sais pas mais je suis fatigué je dors plus
            • Partager sur Facebook
            • Partager sur Twitter
              23 juin 2006 à 17:28:11

              Salut
              je ne sais pas j'ai fait comme tu m'a dit aimak mais ça affiche une erreur comme quoi ma requête n'est pas bonne je ne sais pas qu'est ce que j'ai fait de mauvais : voici mon bout de code:
              //Pour vérifier si le pseudo et l'email existe déjà dans la table
              mysql_connect($host,$username,$password);
              mysql_select_db($bdd_name);

              $si_pseudo_existe = mysql_query("SELECT COUNT(*) AS nb FROM membres WHERE pseudo='".$_POST['pseudo']."'") or die (mysql_error());
              $enregistre_pseudo = mysql_fetch_array($si_pseudo_existe);

              $si_email_existe =("SELECT COUNT(*) AS nb_entrees FROM membres WHERE email='".$_POST['email']."'") or die (mysql_error());
              $enregistre_email = mysql_fetch_array($si_email_existe);

              mysql_close();


              après dans la condition je mets:
              //Si le pseudo n'existe pas dans la table on l'enregistre
                                                     if($enregistre_pseudo['nb']==0)
                                                                                         {
                                                                                         //De même pour l'email
                                                                                              if($enregistre_email['nb_entrees'] ==0)
                                                                                                         {

              ben je ne comprends pas qu'est ce qui ne va pas :(
              sinon j'ai fait une recherche sur mysql_num_rows:
              $query = "SELECT * FROM `membres` WHERE
              `pseudo`='$_POST[pseudo]' AND
              `passe`='$_POST[passe]'"
              ;

              //Pour vérifier si le pseudo et l'email existe déjà dans la table
              mysql_connect($host,$username,$password);
              mysql_select_db($bdd_name);

              // On effectue la requête et on obtient des résutats (ou pas !)
              $result = mysql_query ($query);

              mysql_close();

              switch (mysql_num_rows ($result))
              {
                case 1 :
                  echo "bon !";
                  break;
                case 0 :
                  echo "pas bon ...";
                  break;
                default:
                  echo "erreur =(";
                  break;
              }

              mais alors , on peut intégrer un switch dans un if else? RALALA J'EN AI MARRE!!
              surtout que je comprends pas pk le premier code ne fonctionne pas
              si quelqu'un a une solution
              • Partager sur Facebook
              • Partager sur Twitter

              gestion de formulaire

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown