Se connecter / S'enregistrer
Votre question

Impossible de créer une db

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
27 Mars 2007 13:05:58

Salut, j'ai un petit problème avec mon formulaire d'inscription voici mon code:

  1. <?php
  2. if (isset($_POST['pseudo']) AND isset($_POST['pass']) AND isset($_POST['planete'])) // Si les variables existent
  3. {
  4. if ($_POST['pseudo'] != NULL AND $_POST['pass'] != NULL AND $_POST['prenom'] != NULL AND $_POST['planete'] != NULL) // Si on a quelque chose à enregistrer
  5. {
  6. // D'abord, on se connecte à MySQL
  7. mysql_connect("localhost", "table", "pass");
  8. mysql_select_db("test");
  9.  
  10. // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
  11. $pass = htmlentities ($_POST['pass']) ;
  12. $pseudo = htmlentities ($_POST['pseudo']);
  13. $planete = htmlentities ($_POST['prenom']);
  14.  
  15. $dern_msg = mysql_query('SELECT pseudo FROM formulaire');
  16.  
  17.  
  18. if($dern_msg != $pseudo) {
  19. // Ensuite on enregistre les info
  20. mysql_query("INSERT INTO formulaire VALUES('', '$pseudo', '$pass', '$planete')");
  21.  
  22. // On se déconnecte de MySQL
  23. mysql_close();
  24. }
  25.  
  26. }
  27. }
  28.  
  29.  
  30. ?>
  31.  
  32.  
  33. <div class="content">
  34.  
  35. <br /><div style="text-align: center;"><h2>Nouveau Membre</h2></div><br /><br />
  36.  
  37. <form method="post" action="inscription.php">
  38. <table style="margin-left: auto;margin-right: auto;text-align: left;" border="0" cellspacing="1" cellpadding="3">
  39.  
  40. <tr><td><h3>Pseudo : </h3></td><td><input type="text" name="pseudo" size="16" maxlength="30" /> *</td></tr>
  41.  
  42. <tr><td><h3>Pass : </h3></td><td><input id="reg_pass" type="pass" name="pass_reg" size="16" maxlength="15" /> *</td></tr>
  43.  
  44. <tr><td><h3>Pass (confirmez) : </h3></td><td><input type="password" name="pass_conf" size="16" maxlength="15" /> *</td></tr>
  45.  
  46. <tr><td><h3>Planète:</h3></td> <td><select name="planete" size="5">
  47. <option value="1" selected>Planète rouge</option>
  48. <option value="2">Planète bleu</option>
  49. <option value="3">Planète noir</option>
  50. <option value="4">Planète mauve</option>
  51. <option value="5">Planète verte</option></select></td></tr>
  52.  
  53. <tr><td colspan="2"> </td></tr>
  54. <tr><td colspan="2" align="center"><input type="submit" value="Inscription" /></td></tr></table></form><br />
  55. </div>
  56. </td></tr>
  57. </table>


Rien ne s'écrit dans ma table et je ne comprend pourquoi, merci de m'expliquer clairement (je débute)

Autres pages sur : impossible creer

27 Mars 2007 13:26:48

Ah mon avis c'est ici que ca pose problème if($dern_msg != $pseudo)
27 Mars 2007 13:37:33

Oui c'est un code que j'ai récup! je sais pas d'ou sort le $dern_msg mais si je suppime se if faut que je supprime $dern_msg juste avant = mysql_query?
Contenus similaires
27 Mars 2007 13:58:41

C'est surtout que $dern_msg = mysql_query('SELECT pseudo FROM formulaire'); ne va rien filtrer du tout , tu récupères tout les pseudo dans la table formulaire , donc il y aura toujours quelque chose dedans ( une valeur non null ) .

En regardant un peu plus attentivement , ca devrait passer tout le temps dans le if , donc ca devrait également écrire dans la db.

Tu n'as pas de message d'erreur ?
27 Mars 2007 14:12:10

  1. mysql_query(maRequete) or die('Erreur SQL :'.mysql_error());


c'est pas mal pour debugger.
27 Mars 2007 15:09:02

Non aucun message d'erreur
27 Mars 2007 16:00:38

t'as essayé avec le bout de code que je t'ai donné ??

ca fait longtemps que j'ai pas fait de php, mais il me semble que les erreurs sur mysql_... ne s'affiche que si tu utilses mysql_error...
27 Mars 2007 23:01:24

c'est quoi le but du code???
  1. $dern_msg = mysql_query('SELECT pseudo FROM formulaire');
  2. if($dern_msg != $pseudo) {

la tu veux controler si le pseudo existe?
si c'est ca, il faut plutot utiliser une requete de ce genre:
  1. select pseudo from formulaire where pseudo = '$pseudo';

et ensuite juste tester si dern_message n'est pas FALSE avec !==
28 Mars 2007 15:00:34

@kakashi: voici se que ca donne en mettant le bout de code:

Erreur SQL :Access denied for user 'nobody'@'localhost' (using password: NO)

@coca: quand je fais ça la page ne s'affiche plus, surement une erreur de ma part!
28 Mars 2007 15:32:55

bah c'est que ton user n'existe pas, ou n'a pas les droits sur la base...

dans mysql_connect l'argument 2 et 3 se sont le login et le pass du user...
28 Mars 2007 15:54:37

+1
j'avais meme pas vu cette ligne:
  1. mysql_connect("localhost", "table", "pass" );

table n'est surement pas un utilisateur, si?
@allstar: si la page ne s'affiche plus juste en changant la requete, je voudrais bien voir ca ;) 
28 Mars 2007 15:59:34

@coca25 >> c'est surement a cause de mon or die ^^ qui arrete tout au niveau de l'erreur.
28 Mars 2007 16:02:27

:jap: 
28 Mars 2007 20:17:14

Ici j'ai modifier, je vais pas donner mes info sql :D 

j'ai localhost, après le nom de ma table, après mon mot de passe sql! c'est bien ça?
28 Mars 2007 21:49:27

C'est bien se que j'ai! :( 
28 Mars 2007 21:53:50

non, tu dis : nom de la table ! ^^

c'est localhost, admin, password par exemple !!

le nom de la table vient apres.
28 Mars 2007 21:58:29

Bah le nom de ma table est le meme que mon identifiant sql
28 Mars 2007 22:09:21

déjà qu'est ce que tu veux dire par table?
résumons:
Serveur: localhost
Base de données: test
Table: formulaire
Utilisateur: table ???
Mot de passe: pass

si c'est ca, ton code est bon, mais dans ce cas, il ne t'afficherait pas cette erreur
28 Mars 2007 22:15:29

Parametres mysql
nom du serveur mysql : localhost
nom de la base mysql : papillonlandreun
nom du compte mysql et phpmyadmin : papillonlandreun
mot de passe mysql et phpmyadmin: *****

Voilà mais paramètre sql et pour mysql_connect j'ai mis ceci

  1. mysql_connect('localhost', 'papillonlandreun', '*****');
  2.  
  3. mysql_select_db("test");
28 Mars 2007 23:04:01

allstar27 a dit :
Parametres mysql
nom du serveur mysql : localhost
nom de la base mysql : papillonlandreun
nom du compte mysql et phpmyadmin : papillonlandreun
mot de passe mysql et phpmyadmin: *****

Voilà mais paramètre sql et pour mysql_connect j'ai mis ceci

Citation :
mysql_connect('localhost', 'papillonlandreun', '*****');

mysql_select_db("test");


mysql_select_db ()
db => data base => base de données

avec tous ses noms, je me demande comment il t'as sorti nobody ;) 
28 Mars 2007 23:10:12

mysql_connect('localhost', 'papillonlandreun', '*****');

mysql_select_db("test");


mysql_connect: je me connecte a ma base de données
('localhost', 'papillonlandreun', '*****'); : j'entre mes infos sql
mysql_select_db("test"); : je donne un nom a la db

Je comprend pas où est le problème ?? :heink: 
28 Mars 2007 23:33:34

papillonlandreun c'est le nom de ma base et test c'est le nom de ma nouvelle db.

Comme par exemple dans ma base papillonlandreun j'ai phpbb_forums

En faite je pense que j'aurai du mettre create_table :ouch: 
29 Mars 2007 00:01:42

bon alors revois les termes utilisés dans le contexte de base de données

db = base de données
la hierarchie pour le principal:
serveur de base de données -> base de données -> table -> enregistrements

phpbb_forums est une table

à mon avis, tu te compliques un peu la vie
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS