Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec mysql_fetch_array et in_array

Sujet résolu
    28 décembre 2005 à 23:31:30

    Salut aux Zero, j'ai un petit probleme d'array fais a partir d'une table mySQL.

    Je vous donne mon code et je vous explique :-°

    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("silverland");

    if (isset($_POST['formulaire_rempli']))
    {
    $donnees = mysql_query("SELECT nom FROM membres");
    $nom = mysql_fetch_array($donnees);

       if (in_array($_POST['nom'], $nom))
       {
       echo '<p>Ce Nom existe déja. Vous etes surement déja inscris.</p>';
       }
       else
       {
       mysql_query("INSERT INTO membres VALUES('','".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['age']."', '".$_POST['mail']."', '".$_POST['ville']."', '".$_POST['parti_politique']."')");
       mysql_query("INSERT INTO comptes VALUES('')");
       echo '<p>Votre demande a bien été prise en compte, vous etes maintenant citoyen du Silverland</p>';
       };
    }
    else
    {
    echo'
    <form action="naturalisation.php" method="post" >
       <p>Nom :<br>
       <input maxlength="30" size="30" name="nom"></p>
       <p>Prénom :<br>
       <input maxlength="30" size="30" name="prenom"></p>
       <p>Age :
       <input maxlength="2" size="2" name="age"></p>
       <p>Adresse eM@il :<br>
       <input maxlength="60" size="60" name="mail"></p>
       <p>Ville, description de <a href="silveryork.php">Silver York</a>, <a href="goldena.php">Goldena</a>, ou <a href="zakar.php">Zakar</a> : <br>
       <select name="ville">
         <option value="silver_york">Silver York</option>
         <option value="goldena">Goldena</option>
         <option value="zakar">Zakar</option>
       </select></p>
       <p>Parti politique, <a href="partis.php">descritpion des partis</a> :<br>
       <select name="parti_politique">
         <option value="aucun_parti">Aucun Parti</option>
         <option value="puc">PUC : Parti Ultra Conservateur (droite)</option>
         <option value="mcs">MCS : Mouvement Centriste Silverlandais (centre)</option>
         <option value="eps">EPS : Ecolo Parti Silverlandais (gauche)</option>
       </select></p>
       <input type="hidden" name="formulaire_rempli" value="oui" />
       <p><input value="Envoyer le forumlaire" type="submit"></p>
    </form>
    '
    ;
    };
    mysql_close();?>


    Voila le code, c'est toujour mon forumlaire d'inscription a une micornation donc dans le meme page j'ai mon formulaire qui s'affiche et quand on l'envoie, PHP récupère les variables et les envoie dans une table de ma base de données. Et la ou sa bleme, c'est dans ma partie du code qui sert a éviter que 2 meme noms s'inscrivent cette partie la :

    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("silverland");

    if (isset($_POST['formulaire_rempli']))
    {
    $donnees = mysql_query("SELECT nom FROM membres");
    $nom = mysql_fetch_array($donnees);

       if (in_array($_POST['nom'], $nom))
       {
       echo '<p>Ce Nom existe déja. Vous etes surement déja inscris.</p>';
       }
       else
       {
       mysql_query("INSERT INTO membres VALUES('','".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['age']."', '".$_POST['mail']."', '".$_POST['ville']."', '".$_POST['parti_politique']."')");
       mysql_query("INSERT INTO comptes VALUES('')");
       echo '<p>Votre demande a bien été prise en compte, vous etes maintenant citoyen du Silverland</p>';
       };


    Ma base de donnée est vide, quand j'ajoute un nom, ce nom s'ajoute a la BDD, et j'ai juste une erreur mysql en plus :

    Citation : mySQL

    Warning: in_array(): Wrong datatype for second argument in c:\clément\site\silverland mse\naturalisation.php on line 13



    Et ensuite, j'ajoute un deuxieme nom, different, tout marche, je r'joute le 1er nom il me dit que le nom existe déja, parfait, mais je rajoute un deuxieme fois mon deuxieme nom, il l'ajoute a la BDD comme si de rien était et mon systeme marche pas en gros mon systeme prend en compte uniquement la 1ere entrée de la table. donc si vous savez ou est mon erreur merci de la dire et si vous savez comment enlever l'erreur mySQL que je vosu ai cité merci aussi de me le dire ....

    Yeti
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2005 à 1:15:36

      Salut,
      disons que quand tu fais ceci:

      $donnees = mysql_query("SELECT nom FROM membres");
      $nom = mysql_fetch_array($donnees);

      tu n'as dans ton array que la première entrée de ta table, et pas toute la table (c'est pour ça que quand tu veux afficher tout le contenu de la table, tu dois faire une boucle)

      Donc, pour arriver à faire ce que tu veux faire, jferais plutôt ceci:


      $res = mysql_query("SELECT `pseudo` FROM `table` WHERE `pseudo`='$pseudo_saisi' ");
      $nb = mysql_num_rows($res);
      if($nb == 0){
         //le pseudo n'existe pas, on peut l'enregistrer
      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2005 à 21:33:35

        Niquel, Merci beaucoup j'ai compris ce que tu m'a donnés c'est super !
        Merci encore :D
        • Partager sur Facebook
        • Partager sur Twitter

        Probleme avec mysql_fetch_array et in_array

        × 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