Version complète : Aidez moi ! SVP
Forum Fr > Informatique > Dev, DAO et CAO > Dev. Divers
lunettenoire
Bonjour,
J'ai un problème, j'ai créé un mini formulaire d'inscription et j'ai créé une page add.php pour transférer les informations dans la base de données.
Malheureusement, lorsque je teste, j'ai toujours le même message d'erreur.

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\documents and settings\arthur\bureau\espacemembre\add.php on line 21
Erreur de selection

Je ne sais plus du tout quoi faire
Je vous poste la ligne où il trouve l'erreur

CODE
// sélection de la base
mysql_select_db('tbl_user','$db') or die('Erreur de selection '.mysql_error());


j'attend vos réponses avec impatience.
Bashi
Les connexions aux DB et leurs utilisations se font en 3 etapes qu'il faut respecter imperativement.

1 - Connexion au serveur SQL
2 - Connexion a la base de donnée voulue
3 - "Rêquetisation"

Utilises quelque chose de propre et simple :

CODE
<?php

// Etape 1 : Connexion au serveur SQL
mysql_connect("serveur", "login", "motdepasse");

// Etape 2 : Connexion a la base de donnée voulue
mysql_select_db("nomdelabase");

// Etape 3 : Rêquetisation ( de preference dans une variable pour l'exploiter apres dans une boucle )
$requete1 = mysql_query("requetevoulue");

// A la fin du fichier, ne pas oublier de fermer pour la sécurité
mysql_close();

?>


Apres, chacun a sa maniere de coder biggrin.gif ...

bashi
Phobos
Salut, remplace '$db' par $db
avec les ' ' tu prends la chaîne de caractère $,d,b alors que comme dit dans l'erreur il est dit qu'il te faut une mysql-link resource, donc $db smile.gif
lunettenoire
Tout d'abord, je vous remercie pour vos réponses smile.gif .
Cependant, ça ne marche toujours pas.
Je me retrouve avec 2 erreurs

Notice: Undefined variable: db in c:\documents and settings\arthur\bureau\espacemembre\add.php on line 21

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\documents and settings\arthur\bureau\espacemembre\add.php on line 21
Erreur de selection

cette fois ci, je poste aussi le code de add.php dans sa totalité.
CODE
<?php
// On commence par récupérer les champs
if(isset($_POST['pseudo']))      $pseudo=$_POST['pseudo'];
else      $pseudo="";

if(isset($_POST['login']))      $login=$_POST['login'];
else      $login="";

if(isset($_POST['pwd']))      $pwd=$_POST['pwd'];
else      $pwd="";

// On vérifie si les champs sont vides
if(empty($pseudo) OR empty($login) OR empty($pwd))
    
// Aucun champ n'est vide, on peut enregistrer dans la table

        // connexion à la base
$db = mysql_connect('127.0.0.1', 'root', '')  or die('Erreur de connexion '.mysql_error());

        // sélection de la base  
     mysql_select_db('membre',$db)  or die('Erreur de selection '.mysql_error());
    
     // on écrit la requête sql
     $sql = "INSERT INTO tbl_user(pseudo,login,pwd) VALUES('$pseudo','$login','$pwd')";
    
     // on insère les informations du formulaire dans la table
     mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

     // on affiche le résultat pour le visiteur
     echo 'Vos infos on été ajoutées.';

     mysql_close();  // on ferme la connexion
    
?>
Pheldwyn
Salut !

Il manque des accolades à ton if ...

En fait là, si ton if est vrai, tu n'exécutes que la ligne :
$db = mysql_connect('127.0.0.1', 'root', '') or die('Erreur de connexion '.mysql_error());

Or, ton if est faux dès que tu remplis tous les champs : donc tu ne passe pas dans ce cas par la ligne ci-dessus, donc ton $db n'est pas déclaré.
Wixblog.com
Est tu sur d'avoir bien créé une table membre?

Ensuite essaye de remplacer 127.0.0.1 par localhost
zayneb
ce que je le sais pour t'aider :
www.sitedezero.com
et pour code:
<?php
cnnexion à la base
mysql_connect("localhost","password"); or die("echec de connection à la base");
mysql_select_db("nom de la base") ;
mysql_db_query("la requete")
?>
zayneb
je veux te présenter une méthode que je l'ai testé et ca marche
tu crée 1er page php portant le formulaire concernant l'entré de login et le password et contenant le script java suivant:
<script laguage="javascript">
fuction test(f){
if{(f.login.value=="")}||{(f.password.value=="")} { alert("veuillez remplir les champs svp")
return false;
}
f.submit()
return true;
}
pour le bouton submit;
<input type="bouton" name="cmd" value="connexion" onClick="test(f)">
pour le formulaire
<form name ="f" method="post" action ="session.php">
la page session.php
<?php
@mysql_connect("localhost","root") or die ("echec de connexion")
$sql="select*from le tableau(administrateur) where login=$login and password= $ password";
$exe=mysql_db_query("base de donnée " ,$sql)
$num=mysql_num_rows($exe);
if(!$num){
?>
<script>
location.href="page1.php"
</script>
<?
}
else
{
session_start();
session_register("login");
}
?>
<script<
location.href="acceuil.php"
</script>
<?
?>
</BODY>
</HTML>
JE TROUVE CA PLUS SIMPLE QUAND JE L'AI ESSAY2 EN PLUS efficace AVEC la sessio

gannher
CITATION(zayneb @ lundi 02 juillet 2007 à 17:45) *
@mysql_connect("localhost","root") or die ("echec de connexion")


Salut
Concernant cette ligne il vaut mieux mettre :
mysql_connect("localhost","root","") or die ("echec de connexion");

Là c'est pour le cas où tas base de donnée n'a pas de mot de passe. Si elle a un mot de passe (par exemple toto) il faut mettre :
mysql_connect("localhost","root","toto") or die ("echec de connexion");

Comme ca il n'y aura plus d'erreur et tu pourras enlever le @ .

Maintenant il y a un autre truc:
Il est plutot déconseillé d'utilisé session_register("login"); parce que cette fonction nécessite que register_global soit à ON. Depuis PHP 4, la valeur de register_global est à OFF par défault et elle est totalement retirée depuis PHP 6 .
Pour enregistrer des variables de sessions il vaut mieux utiliser :
$_SESSION['login'] = $login;


voilou smile.gif
zayneb
merci infiniment gannher smile.gif
τδκμshιrφ
Salut, ton fichier add.php contient pas mal d'erreur..

Essaye cela :
CODE
<?php

// On commence par récupérer les champs

if(isset($_POST['pseudo']) AND isset($_POST['login']) AND isset($_POST['pwd']))  

{

$pseudo= htmlentities($_POST['pseudo']);

$login= htmlentities($_POST['login']);

$pwd= htmlentities($_POST['pwd']);


// On vérifie si les champs sont vides

if(!empty($pseudo) AND !empty($login) AND !empty($pwd))

{

// Aucun champ n'est vide, on peut enregistrer dans la table

      // connexion à la base

mysql_connect('localhost', 'root', 'mot_de_passe')  or die('Erreur de connexion '.mysql_error());

      // sélection de la base  
mysql_select_db('nom_de_la_base')  or die('Erreur de selection '.mysql_error());
  
     // on écrit la requête sql
     $sql = "INSERT INTO tbl_user VALUES '".$pseudo."', '".$login."', '".$pwd."'";
    
     // on insère les informations du formulaire dans la table
     mysql_query($sql) or die('Erreur SQL !'. $sql . mysql_error());

     // on affiche le résultat pour le visiteur
     echo 'Vos infos on été ajoutées.';

     mysql_close();  // on ferme la connexion

} else { echo 'Un ou plusieurs champs ne sont pas remplis !'; }

}
?>
Invision Power Board © 2001-2009 Invision Power Services, Inc.