Formulaire [Fermé]

Signaler
-
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016
-
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

Messages postés
2429
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
27 juillet 2021
453
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,
Messages postés
216
Date d'inscription
lundi 2 décembre 2013
Statut
Membre
Dernière intervention
10 octobre 2016
21
Bonjour,

un tutoriel sur PDO est accessible ici : http://ww12.xrecasens.info
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

merci les gars, je vais réessayé et vous tenir au courant
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

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
Messages postés
2429
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
27 juillet 2021
453
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.
Messages postés
19
Date d'inscription
mardi 3 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

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.
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

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
Messages postés
19
Date d'inscription
mardi 3 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016
>
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

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 ^^'
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

Désolé, qu'est ce que t'a pas bien saisie?
Messages postés
19
Date d'inscription
mardi 3 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016
>
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

Non c'est bon maintenant t'inquiète :)
Sinon pour ton problème désolé :/
Messages postés
6
Date d'inscription
mercredi 4 mai 2016
Statut
Membre
Dernière intervention
4 mai 2016

Okay