formulaire et base de données
Posté : 24 juin 2010, 17:40
Bonjour,
j'ai un soucis avec mon formulaire et mes enregistrements dans une BDD.
Code mon formulaire:
Avez vous des pistes ??
merci
j'ai un soucis avec mon formulaire et mes enregistrements dans une BDD.
Code mon formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>essai</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
form
{
text-align:center;
}
</style>
<body>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=am', 'user', 'mp');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des données
$reponse = $bdd->query('SELECT * FROM matchs');
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
?>
<table border="1">
<tr>
<td><b> banderoles</b><br>(4 personnes)</td>
<td><b>salle</b><br>(2 personnes)</td>
<td><b>Table </b><br>(1 personne)</td>
</tr>
<tr>
<?php
$res = $bdd->query('SELECT COUNT(banderoles) AS total FROM matchs');
$row = $res->fetch();
echo 'total d\'inscrits = ' . $row['total'];
if ($row['total'] <= 3)
{
echo ' <form action="f.php" method="post">
<p>
<label for="banderoles">Banderoles</label> : <input type="text" name="banderoles" id="banderoles" /><br />
<label for="salle">Salle</label> : <input type="text" name="salle" id="salle" /><br />
<label for="table">Table</label>: <input type="text" name="table" id="table" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>';
while ($donnees = $reponse->fetch())
{
echo $donnees[0];
echo '<td>- ' . htmlspecialchars($donnees['banderoles']) . '</td>
<td>- ' . htmlspecialchars($donnees['salle']) . '<br /></td>
<td>- ' . htmlspecialchars($donnees['table']) . '<br /></td></tr>'; }
$reponse->closeCursor();
}
else
{
echo ' <form action="f.php" method="post">
<p>
<label for="banderoles">Banderoles</label> : Inscriptions closes<br />
<label for="salle">Salle</label> : <input type="text" name="salle" id="salle" /><br />
<label for="table">Table</label>: <input type="text" name="table" id="table" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>';
while ($donnees = $reponse->fetch())
{
echo '<td>- ' . htmlspecialchars($donnees['banderoles']) . '</td>
<td>- ' . htmlspecialchars($donnees['salle']) . '<br /></td>
<td>- ' . htmlspecialchars($donnees['table']) . '<br /></td></tr>'; }
$reponse->closeCursor();
}
?>
</table>
et voici mon code f.php :
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:blabla');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if (isset($_POST['banderoles']) and isset($_POST['salle']) and isset($_POST['table']))
{
$req = $bdd->prepare('INSERT INTO matchs (id, banderoles, salle, table) VALUES
(
:id,
:banderoles,
:salle,
:table
)
');
$req->execute(array(
'id' => '',
'banderoles' => $_POST['banderoles'],
'salle' => $_POST['salle'],
'table' => $_POST['table'],
));
}
elseif (isset($_POST['salle']))
{
$req = $bdd->prepare('INSERT INTO matchs (salle) VALUES(?)');
$req->execute(array($_POST['salle']));
}
else
{
echo 'rien';
}
// Redirection du visiteur vers la page initiale
header('Location: d.php');
?>
Quand je remplis les 3 champs, il ne renvoie rien c'est a dire qu'il reste sur la page du formulaire, aucune erreur n'est indiqué, et aucun enregistrement n'est effectué dans la BDD.Avez vous des pistes ??
merci