Page 1 sur 1

pb envoi bdd

Posté : 09 mai 2010, 12:15
par jimix
bonjour à tous,
je suis novice et je cherche à envoyer des éléments saisie sur une 2ème page et envoi simultanément sur bdd.
et cela ne fonctionne pas ci-dessous la prog utilisée:
j'ai créé 2 fichier
sur le 1er :
<html><body>
<form action='pageb.php' method='post'>
Nom : <input type='text' name='nom'>
Prénom : <input type='text' name='prenom'>
<input type="submit" value="OK">
</form></body></html>


et le 2ème
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
print("<center>$prenom $nom</center>");
>?
and
<?php
$bdd = new PDO('mysql:host=localhost;dbname=clients', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());

$sql = "INSERT into clients (nom, prénom) VALUES ('.$_POST['nom']."','".$_POST['prénom']."');";
mysql_query($sql);
>?

cela me met ce message d'erreur et rien sur la bdd :Parse error: syntax error, unexpected '>' in C:\Program Files\EasyPHP-5.3.1\www\pageb.php on line 5

par avance merci pour votre aide

Re: pb envoi bdd

Posté : 09 mai 2010, 12:38
par SinBert
Bonjour,

en effet, je vois quelques erreurs de base dans ton script.
La première se situe ici :
print("<center>$prenom $nom</center>");
>?
and
La balise fermante de PHP est ?> et non >?.
La deuxième est celle-ci :
$sql = "INSERT into clients (nom, prénom) VALUES ('.$_POST['nom']."','".$_POST['prénom']."');";
Tes apostrophes et guillemets s'emmêlent un peu les pinceaux. Pourquoi ne pas faire simplement avec les variables que tu as créées au début de ton script?
Comme ceci :
$sql = "INSERT into clients (nom, prénom) VALUES ('$nom', '$prenom')";
Ceci est, je pense, beaucoup plus clair. D'autant plus (et tu le dis toi même) que tu est un novice ;)
Enfin, si tu as une quelconque erreur qui apparait, fait en nous part. :)

Voici à quoi devrait ressembler le code final de ta deuxième page :
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
print("<center>$prenom $nom</center>");
?>
and
<?php
$bdd = new PDO('mysql:host=localhost;dbname=clients', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());

$sql = "INSERT into clients (nom, prénom) VALUES ('$nom', '$prenom')";
mysql_query($sql);
?>
Bonne journée :D

PS : pour revoir les bases, rien ne vaut une bonne lecture de tutoriel. (notemment celui-ci : http://www.siteduzero.com/tutoriel-3-14 ... c-php.html)

Re: pb envoi bdd

Posté : 09 mai 2010, 12:47
par jimix
merci pour votre réponse. c sur c'est plus claire toutefois cela ne fonctionne toujours pas il me met cette erreur
Parse error: syntax error, unexpected '}' in C:\Program Files\EasyPHP-5.3.1\www\paged.php on line 9
je ne trouve pas l'erreur je pense que cela vient de a liaison entre les 2 demandes.
par avance merci pour votre aide

Re: pb envoi bdd

Posté : 09 mai 2010, 13:02
par SinBert
Je pensais que tu m'avais donné un bout de ton code.
Bref, le message est assez clair :
Une accolade fermante "inattendue" à la ligne 9. Que fais elle là? Lorsque tu as une accolade fermante quelque part dans un script, cela veut forcément dire qu'il y en a une ouvrante en amont. Or ici, il n'y en a visiblement pas. (en tout les cas si tu m'as donné le script complet dès le départ).

Même combat pour le
catch(Exception $e)
{

Il faut la fermer avant la fin de ton script.
Donc vérifie ton script complet, et à chaque fois que tu ouvre une accolade, il doit y avoir une fermante plus bas.

Bonne chance ;)

Re: pb envoi bdd

Posté : 09 mai 2010, 14:02
par jimix
encore merci ça avance.

voici mon code
<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
print("<center>$prenom $nom</center>");
?>

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=clients', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$sql = "INSERT into clients (nom, prenom) VALUES ('$nom', '$prenom')";
mysql_query($sql);
?>


toutefois il me met cette erreur. "Erreur : SQLSTATE[42000] [1049] Base 'clients' inconnue"

je pense qu'il y un pb de lien avec la bdd, mais je vois pas d'où cela vient. doit on mettre quelque chose de spécifique dans la bdd. je l'ai créé et appelé clients.

par avance merci pour votre aide. c sympa

Re: pb envoi bdd

Posté : 09 mai 2010, 14:04
par jimix
pour info ma bdd s'appelle news et la table clients. et c'est dans cette table que j'ai mis les champs nom et prénom..

Re: pb envoi bdd

Posté : 09 mai 2010, 15:14
par SinBert
Re,

donc ta base a pour nom "news" et la table que tu as créé s'appelle "clients"?
Si tel est le cas, je pense que l'erreur est simplissime et aurait très bien pu être réglée en cherchant un peu sur le net. :(

Si ta base s'appelle "news", pourquoi as tu mis "clients" à dbname sur cette ligne ?
$bdd = new PDO('mysql:host=localhost;dbname=clients', 'root', '');

Encore une fois, se sont des bases fondamentales ; je te conseille vivement d'aller lire un tutoriel. (http://www.siteduzero.com/tutoriel-3-14 ... nnees.html)

Donc en conclusion, si ta base s'appelle réellement "news", remplace "clients" par "news" à la ligne ci-dessus.

Bonne journée. :wink:

Re: pb envoi bdd

Posté : 09 mai 2010, 17:37
par jimix
encore merci pour votre patience. pour le nom de la bdd j'avais essayé avec les 2.

voici le code d'erreur que cela m'affiche :Erreur : SQLSTATE[28000] [1045] Acc�s refus� pour l'utilisateur: 'jimix'@'@localhost' (mot de passe: OUI)
comme si il n'arrivé pas à se connecter à la bdd.

je suis allé sur différents forum et je n'ai pas trouvé comment le résoudre.

que faire????, c 'est dure pour un débutant encore des heures devant l'ordi.

Re: pb envoi bdd

Posté : 10 mai 2010, 13:33
par stealth35
normale tu mélanges 2 extension : PDO et mysql, tu te connecte avec PDO mais tu fais une requête avec l'extension mysql

Re: pb envoi bdd

Posté : 10 mai 2010, 18:44
par jimix
et que faut il faire alors???
PAR AVANCE MERCI

Re: pb envoi bdd

Posté : 10 mai 2010, 18:45
par stealth35
et que faut il faire alors???
PAR AVANCE MERCI
au lieu de faire
mysql_query($sql);
faire
$bdd->query($sql);
#-o :wink:

Re: pb envoi bdd

Posté : 10 mai 2010, 19:04
par jimix
merci, il n y a plus de message d'erreur. par contre rien n'est reporté sur la table.je comprends pas!!
vISIBLEMENT VOUS ËTES UN EXPERT SI VOUS POUVIEZ ME DONNER UN COUPR DE MAIN çA SERAI COOL

Re: pb envoi bdd

Posté : 10 mai 2010, 19:08
par jimix
ça fonctionne avec wampserver mais pas avec easyphp?
pourquoi aussi non je travaille avec wap.
qu'en penser lorsqu'on est novice

Re: pb envoi bdd

Posté : 10 mai 2010, 20:46
par stealth35
je te conseil d'afficher les erreur PDO

suffis de rajouter dans ton try
$bdd->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

Re: pb envoi bdd

Posté : 10 mai 2010, 22:23
par JIMIX93
ENCORE MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII =D>