erreur php sql

Petit nouveau ! | 8 Messages

30 août 2012, 15:23

Bonjour,

Voila j'ai crée une page d'inscription à l'espace membre mais mysql n'affiche que la première ligne (la première inscription) et n'affiche pas les autres lignes. Il se pourrait qu'il y ai un problème dans mon script:
<html>
<head>
<title> Formulaire d'inscritpion </title>
</head>
<body>
<h1> Entre les champs du formulaire </h1>
<?php
// création des variables aux noms abrégés

$pseudo=$_POST['pseudo'];
$pass=$_POST['pass'];

$PARAM_hote='localhost'; // le chemin vers le serveur
$PARAM_port='3306';
$PARAM_nom_bd='test'; // le nom de votre base de données
$PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter
$PARAM_mot_passe=''; // mot de passe de l'utilisateur pour se connecter
$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);

$resultats=$connexion->query("INSERT INTO membres (pseudo, pass) VALUES ('.$pseudo.', '.$pass.') ");
$resultats->closeCursor(); // on ferme le curseur des résultats


?>
</body></html>

et voila la page html
<html>
<head>
<title> Inscription</title>
<link href="default.css" />
</head>
<body>
<h1> Formulaire d'inscription</h1>
<form method='post' action='book.php'>
<label for='pseudo'>Pseudonyme</label>:<input type='text' name='pseudo'/><br/>
<label for='pass'>Mot de passe</label>:<input type='password' name='pass'/><br/>
<label for='submit'>Envoyer</label>:<input type='submit' name='submit'/>
</form>
</body></html>
Je ne suis qu'un débutant j'ai besoin de votre aide pour progresser. Merci

ViPHP
ViPHP | 2577 Messages

30 août 2012, 15:34

Mais tu ne montres que l'insertion, pas l'affichage. Est ce que les membres sont bien insérés dans la base ?

Tu devrais tester la bonne exécution de la requete SQL d'insert (cf http://www.php.net/manual/fr/pdo.errorcode.php) et pour un insert, il n'y a pas de curseur à fermer.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 août 2012, 15:35

Est-ce que dans ta base de données les membres sont bien renseignés (quand tu vas voir avec phpMyAdmin par exemple) ?

En fait, est-ce que le problème est à l'enregistrement (qui semble être correct d'après ton code) ou à la consultation (dont tu ne nous expose pas le code, ici).

Si tu as bien tes données en base, montre nous le code de l'affichage. Si tu n'as rien en base après l'ajout d'un nouveau membre, c'est probablement que tu as des erreurs... En l'occurrence dans ta requête SQL d'insertion, tu as des points en trop, ou des guillemets en pas assez ;)
$resultats=$connexion->query("INSERT INTO membres (pseudo, pass) VALUES ('$pseudo', '$pass') ");
// ou
$resultats=$connexion->query("INSERT INTO membres (pseudo, pass) VALUES ('" . $pseudo . "', '" . $pass . "') ");
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...