Formulaire

sead17 -  
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

2 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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,
0
Xavierdu34 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   21
 
Bonjour,

un tutoriel sur PDO est accessible ici : http://ww12.xrecasens.info
0
sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
merci les gars, je vais réessayé et vous tenir au courant
0
sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai eu a changé cette partie:

$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
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Ta requête n'est toujours pas correcte : les valeurs devraient être insérées dans la requête via des paramètres (nommé ou non) comme expliqué sur les exemples de la doc https://www.php.net/manual/fr/pdo.prepare.php
En activant l'affichage des erreurs PDO, ce dernier aurait dû d'indiquer cette erreur de syntaxe sql.
0
MrLeBeignet Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, déjà pour la connexion a la base de données, si j'ai bien compris,
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.
0
sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
J'vous ai mis mon html et mon mais vu q ma reqc est tjrs fausse si possible corrigcorrigezla et proposezÇ moi un exemple.Ça sera mieux j pense bien
0
sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
MrLeBeignet, en faite jai codé dns une autre page pour faire la connexion avc la base d donné et require c jste pour faire appl à la page
0
MrLeBeignet Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Ok.
S'il te plaît tu pourrais écrire sans abréviation et te relire après avoir écris ton message ? Il y a des trucs que j'ai eu du pal a comprendre ^^'
0
sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé, qu'est ce que t'a pas bien saisie?
0
MrLeBeignet Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > sead17 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Non c'est bon maintenant t'inquiète :)
Sinon pour ton problème désolé :/
0