Probleme avec PDO et BDD
gintoxic
Messages postés
566
Statut
Membre
-
gintoxic Messages postés 566 Statut Membre -
gintoxic Messages postés 566 Statut Membre -
bonjour,
je suis tout nouveau avec PDO et php (que j'essaie de comprendre depuis des années et alors que je souhaite entreprendre un apprentissage forcé, je tombe nez à nez avec un petit probleme sûrement de synthaxe d'ailleurs.
j'ai recherché partout des sujets[résolus], des tutos et des cours (le SDZ entre autre) sans arriver à trouver une solution.
où j'en suis ?
j'ai un formulaire basique et court (nom et commentaire) et je souhaite en premier lieu entrer dans ma base de donnée le pseudo et le message pour ensuite le ressortir via php
la connexion a l'air de se faire (pas de message d'erreur) mon script "formulaire" passe correctement, mais rien ne rentre dans la BDD
pourriez-vous m'aider svp que je comprenne et realise d'autre exercices de mon coté ?
merci à vous
le code de la page php :
l'url pour tester : http://symposion.fr
je suis tout nouveau avec PDO et php (que j'essaie de comprendre depuis des années et alors que je souhaite entreprendre un apprentissage forcé, je tombe nez à nez avec un petit probleme sûrement de synthaxe d'ailleurs.
j'ai recherché partout des sujets[résolus], des tutos et des cours (le SDZ entre autre) sans arriver à trouver une solution.
où j'en suis ?
j'ai un formulaire basique et court (nom et commentaire) et je souhaite en premier lieu entrer dans ma base de donnée le pseudo et le message pour ensuite le ressortir via php
la connexion a l'air de se faire (pas de message d'erreur) mon script "formulaire" passe correctement, mais rien ne rentre dans la BDD
pourriez-vous m'aider svp que je comprenne et realise d'autre exercices de mon coté ?
merci à vous
le code de la page php :
<body>
<p>Commentaire</p>
<p>
<form method="post">
Login : <input type="text" name="pseudo" /><br />
commentaire : <br />
<input type="textarea" name="message" rows="10"><br />
<input type="submit" value="Valider" /><br />
</form>
</p>
<?php
$loggin = htmlspecialchars($_POST['pseudo']).' a écrit :<br />';
$mess = htmlspecialchars($_POST['message']);
if(empty($_POST['pseudo']) AND empty($_POST['message'])){
echo 'entrez un pseudo ou un commentaire';
}
elseif(empty($_POST['pseudo']) OR empty($_POST['message'])){
echo 'entrez un pseudo ou un commentaire';
}
else{
$hote='localhost';
$BD='ma_base';
$user='ich_me';
$pass='password';
try
{
$connexion = new PDO('mysql:host='.$hote.';dbname='.$BD, $user, $pass);
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
}
$insertion_table = $connexion->prepare('INSERT INTO commentaires (pseudo, message) VALUES (:pseudo, :message)')
or exit(print_r($insertion_table->errorInfo()));
$insertion_table->exec(array('pseudo'=>$pseudo, 'message'=>$message));
echo $loggin;
echo $mess;
}
?>
</body>
l'url pour tester : http://symposion.fr
A voir également:
- Probleme avec PDO et BDD
- Pdo fetchall ✓ - Forum Webmastering
- Connexion PDO ✓ - Forum PHP
- Problème avec mon WHERE de ma requete pdo ✓ - Forum PHP
- Avis sur relations BDD - Forum Access
- BDD / Conso carburant - Forum Excel
2 réponses
Salut :)
Pour moi, $pseudo et $message sont vides
Pour moi, $pseudo et $message sont vides
$pseudo = $_POST['pseudo']; $message = $_POST['message];
erratum pour l'exemple test, http://symposion.fr/test_array
bon j'arrive à afficher le contenu de la base de donnée entré par l'utilisateur, mais ça ne ressemble à rien.
j'ai tenté une mise en page mais je ne connais pas suffisamment PDO pour realiser une zone de commentaire comme on en voit partout (d meme style qu'ici en fait
quelqu'un pourrait me guider svp ?
j'ai tenté une mise en page mais je ne connais pas suffisamment PDO pour realiser une zone de commentaire comme on en voit partout (d meme style qu'ici en fait
quelqu'un pourrait me guider svp ?
Il te suffit juste de récupérer tous les résultats et de les afficher :
Imaginons :
Après, il faut juste ajouter des attributs html / css avant chaque sorties de texte :)
par exemple :
Imaginons :
$co = new PDO(); // on instancie (c'est un exemple)
$req = $co->query('SELECT * FROM messages');
while($datas = $req->fetch())
{
echo $datas['message'].' '.$datas['pseudo'];
}
$req->closeCursor();
Après, il faut juste ajouter des attributs html / css avant chaque sorties de texte :)
par exemple :
echo '<div class="message">$datas['message'].'</div> <div class="pseudo">'.$datas['pseudo'].'</div>';
bon on y voit plus rien ....
voici le code
voici le code
<meta charset="UTF-8">
<title>test pass</title>
<style>
#bloc_message{
min-width:300px;
min-height:200px;
border:1px solid #000;
/*overflow: auto;*/
}
</style>
</head>
<body>
<?php
$loggin = htmlspecialchars($_POST['pseudo']).' a écrit :<br />';
$mess = htmlspecialchars($_POST['message']);
if(empty($_POST['pseudo']) AND empty($_POST['message'])){
echo 'entrez un pseudo ou un commentaire';
}
elseif(empty($_POST['pseudo']) OR empty($_POST['message'])){
echo 'entrez un pseudo ou un commentaire';
}
else{
$hote='localhost';
$BD='ma_base';
$user='ich_me';
$pass='password';
try
{
$connexion = new PDO('mysql:host='.$hote.';dbname='.$BD, $user, $pass);
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
}
$insertion_table = $connexion->prepare('INSERT INTO commentaires(pseudo, message) VALUES(:pseudo, :message)')
or exit(print_r($insertion_table->errorInfo()));
$insertion_table->execute(array('pseudo'=>$loggin, 'message'=>$mess));
$result= $connexion-> query('SELECT * FROM commentaires');
$donnees=$result->fetch();
while ($donnees = $result->fetch()){
echo $donnees['message'].' '.$donnees['pseudo'];
}
$req->closeCursor();
}
?>
<p>Commentaire</p>
<p>
<form method="post">
Login : <input type="text" name="pseudo" /><br />
commentaire : <br />
<input type="textarea" name="message" rows="10" cols="30"><br />
<input type="submit" value="Valider" /><br />
</form>
</p>
<?php
echo '</div> <div class="pseudo">'.$donnees['pseudo'].'</div>'.'<div id="bloc_message">'.$donnees['message'];
?>
</body>
</html>
mais en effet pas dans
$insertion_table->exec(array('pseudo'=>$pseudo, 'message'=>$message));les variables sont vides donc j'ai remplacé par mes variables de base $loggin et $mess et ça écrit dans ma table ;o)
donc merci beaucoup ^^^
me reste à mettre l'utf-8 et à ressortir ça pour l'affichage