Formulaire
sead17
-
sead17 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
sead17 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un pb avec l'enregistrement des données du formulaire. ça m signale aucune erreur mais rien ne s'affiche dans la base de donnée
voici tout d'abord mon html:
<form action="" method="post">
<p>Ajouter un produit</p>
<table border="0" height="220" width="320">
<tr>
<td class="col1">Réference<font color="red">*</font></td>
<td><input type="text" name="ref" class="ref"></td>
</tr>
<tr>
<td class="col2">Nom<font color="red">*</font></td>
<td><input type="text" name="nom" class="nom"></td>
</tr>
<tr>
<td class="col3">Quantité<font color="red">*</font></td>
<td><input type="text" name="qté" class="qté"></td>
</tr>
<tr>
<td class="col4">Prix<font color="red">*</font></td>
<td><input type="text" name="prix" class="prix"></td>
</tr>
<tr>
<td class="col6">Description<font color="red">*</font></td>
<td><textarea rows="" name="form_textarea" cols="" class="form_textarea"></textarea></td>
</tr>
<tr>
<td valign="top">
<center>
<input type="submit" name="btn_ajouter" value="Ajouter" class="btn_ajouter">
<input type="reset" onclick="window.location.replace('pageprod.php')" name="btn_annuler" value="Annuler" class="btn_annuler">
</center>
</td>
</tr>
</table>
</form>
</section>
et voici mon php
<?php
session_start();
require ('cnection.php');
//récupération des valeurs des champs:
if (isset($_POST['btn_ajouter'])){
//réference:
$réference= $_POST['ref'] ;
//nom:
$nom = $_POST['nom'] ;
//quantité:
$quantité = $_POST['qté'] ;
//prix:
$prix = $_POST['prix'] ;
//date:
/*$Date= $_POST['date'] ;*/
//description:
$description= $_POST['form_textarea'];
//si tous les champs ont été remplis
if (!empty($_POST['réf']) && !empty($_POST['nom']) && !empty($_POST['qté']) && !empty($_POST['prix']) && !empty($_POST['form_textarea'])){
//création de la requête SQL:
$q = $bdd->prepare ("INSERT INTO produit (réference, nom, quantité, prix, description) VALUES ('réference', 'nom', 'quantité', 'prix', 'description')");
//exécution de la requête SQL:
$q=array(
//réference:
'réference'=> $réference ,
//nom:
'nom' => $nom ,
//quantité:
'quantité' => $quantité ,
//prix:
'prix' => $prix ,
//date:
/*$Date= $_POST['date'] ;*/
//description:
'description'=> $description
);
}
}
?>
cnection.php c'est ou j'ai fait la conexion entre la base et l code
Merci de bien pouvoir m'aider
voici tout d'abord mon html:
<form action="" method="post">
<p>Ajouter un produit</p>
<table border="0" height="220" width="320">
<tr>
<td class="col1">Réference<font color="red">*</font></td>
<td><input type="text" name="ref" class="ref"></td>
</tr>
<tr>
<td class="col2">Nom<font color="red">*</font></td>
<td><input type="text" name="nom" class="nom"></td>
</tr>
<tr>
<td class="col3">Quantité<font color="red">*</font></td>
<td><input type="text" name="qté" class="qté"></td>
</tr>
<tr>
<td class="col4">Prix<font color="red">*</font></td>
<td><input type="text" name="prix" class="prix"></td>
</tr>
<tr>
<td class="col6">Description<font color="red">*</font></td>
<td><textarea rows="" name="form_textarea" cols="" class="form_textarea"></textarea></td>
</tr>
<tr>
<td valign="top">
<center>
<input type="submit" name="btn_ajouter" value="Ajouter" class="btn_ajouter">
<input type="reset" onclick="window.location.replace('pageprod.php')" name="btn_annuler" value="Annuler" class="btn_annuler">
</center>
</td>
</tr>
</table>
</form>
</section>
et voici mon php
<?php
session_start();
require ('cnection.php');
//récupération des valeurs des champs:
if (isset($_POST['btn_ajouter'])){
//réference:
$réference= $_POST['ref'] ;
//nom:
$nom = $_POST['nom'] ;
//quantité:
$quantité = $_POST['qté'] ;
//prix:
$prix = $_POST['prix'] ;
//date:
/*$Date= $_POST['date'] ;*/
//description:
$description= $_POST['form_textarea'];
//si tous les champs ont été remplis
if (!empty($_POST['réf']) && !empty($_POST['nom']) && !empty($_POST['qté']) && !empty($_POST['prix']) && !empty($_POST['form_textarea'])){
//création de la requête SQL:
$q = $bdd->prepare ("INSERT INTO produit (réference, nom, quantité, prix, description) VALUES ('réference', 'nom', 'quantité', 'prix', 'description')");
//exécution de la requête SQL:
$q=array(
//réference:
'réference'=> $réference ,
//nom:
'nom' => $nom ,
//quantité:
'quantité' => $quantité ,
//prix:
'prix' => $prix ,
//date:
/*$Date= $_POST['date'] ;*/
//description:
'description'=> $description
);
}
}
?>
cnection.php c'est ou j'ai fait la conexion entre la base et l code
Merci de bien pouvoir m'aider
2 réponses
Salut,
Commence par activer l'affichage des erreurs PDO : https://www.php.net/manual/fr/pdo.error-handling.php
Évite si possible l'utilisation de caractères accentués pour le nom des champs en bdd et le nom des paramètres GET ou POST.
Ton utilisation d'une requête préparée n'est pas correcte, je t'invite à reprendre un tuto et/ou la documentation sur l'utilisation des requêtes préparées avec PDO.
Bonne journée,
Commence par activer l'affichage des erreurs PDO : https://www.php.net/manual/fr/pdo.error-handling.php
Évite si possible l'utilisation de caractères accentués pour le nom des champs en bdd et le nom des paramètres GET ou POST.
Ton utilisation d'une requête préparée n'est pas correcte, je t'invite à reprendre un tuto et/ou la documentation sur l'utilisation des requêtes préparées avec PDO.
Bonne journée,
Bonjour, déjà pour la connexion a la base de données, si j'ai bien compris,
est la ligne qui te connecte a ta base de données. Je te conseille de mettre tout simplement
Je ne suis pas sur que ça réglera tes problèmes car j'ai également vu que tes requête sont erronées mais on ne sait jamais.
require ('cnection.php');
est la ligne qui te connecte a ta base de données. Je te conseille de mettre tout simplement
$bdd = new PDO('mysql:host=;dbname=', 'root', '');
Je ne suis pas sur que ça réglera tes problèmes car j'ai également vu que tes requête sont erronées mais on ne sait jamais.
un tutoriel sur PDO est accessible ici : http://ww12.xrecasens.info
$q = $bdd->prepare ("INSERT INTO 'daoud'. 'produit' ('réference', 'nom', 'quantité', 'prix', 'description')
VALUES (NULL, réference, nom, quantité, prix, description);");
try
{
$success = $q->execute(); // on execute la requête
if( $success )
{ // on teste si la requête est passée
echo 'Id 45 supprimé';
}
} catch( Exception $e ){ // en cas d'erreur on affiche l'erreur.
echo 'Erreur de requête : '.$e->getMessage()."\n";
}
mais ça ne marche toujours pas
En activant l'affichage des erreurs PDO, ce dernier aurait dû d'indiquer cette erreur de syntaxe sql.