Problème avec une requête insert vers bdd

Par Nusrogame, il y a 5 ans


Bonjour,

Voila je rencontre un petit problème avec mon code. J'ai une base de données correspondant a un magasins, j'arrive a ajouter dans ma table rayon qui ne contiens qu'une colonne. Mais je n'arrive pas a refaire la même pour les produits qui ont eux plusieurs colonnes a remplir, en ésperant que l'un de vous puisse m'aider a comprendre ou se trouve mon erreur

<?php include '../Header.html'; ?> <html> <body> <form method="POST" action="Ajouter Un Produit.php"> <p> <label for="categorie"> Rayon:</label> <select size="1" id="categorie" name="a"> <?php $bdd = new PDO('mysql:host=localhost;dbname=magasins;charset=utf8', 'root', ''); $recup = $bdd->prepare("SELECT * FROM categorie"); $affichage = $recup->execute(); $categories = $recup->fetchAll() ; foreach ($categories as $categorie): ?> <option value="<?php $categorie['id'] ?>"><?php echo $categorie['nom']?> </option> <?php endforeach; ?> < </select> </p> <p> <label for="produit">Nom: </label> <input type="text" id="produit" name="b" placeholder="Produit"> </p> <p> <label for="codebarre">Code_Barre: </label> <input type="text" id="codebarre" name="c" placeholder="Code_barre"> </p> <p> <label for="poids">Poids: </label> <input type="text" id="poids" name="d" placeholder="Poids en kg"> </p> <p> <label for="quantite">Quantite: </label> <input type="text" id="quantite" name="e" placeholder="Quantite"> </p> <p> <label for="prix">Prix: </label> <input type="text" id="prix" name="f" placeholder="Prix ht en e"> </p> <p> <label for="remise">Remise: </label> <input type="text" id="remise" name="g" placeholder="Remise en %"> </p> <p> <label for="tva">TVA:</label> <select size="1" id="tva" name="h"> <?php $bdd = new PDO('mysql:host=localhost;dbname=magasins;charset=utf8', 'root', ''); $recup = $bdd->prepare("SELECT * FROM tva"); $affichage = $recup->execute(); $tva = $recup->fetchAll() ; foreach ($tva as $taux): ?> <option value="<?php $taux['id'] ?>"><?php echo $taux['taux']?> </option> <?php endforeach; ?> </select> </p> <input type="submit" value="Envoyer" /> <button type="reset" value="BouttonReset" name="ResetChamps"> Vider les champs</button> </form> </body> </html> <?php // On commence par récupérer les champs if(isset($_POST['a']) and isset($_POST['b']) and isset($_POST['c']) and isset($_POST['d']) and isset($_POST['e'])and isset($_POST['f'])and isset($_POST['g'])and isset($_POST['h'])) { $bdd = new PDO('mysql:host=localhost;dbname=magasins;charset=utf8', 'root', ''); // on écrit la requête sql $sql = "INSERT INTO produit (id_categorie,nom,code_barre,poids,quantite,prix_ht,remise,id_taux) VALUES (?,?,?,?,?,?,?,?)"; // on insère les informations du formulaire dans la table $req=$bdd->prepare($sql); $req->execute(array($_POST['a'],$_POST['b'],$_POST['c'],$_POST['d'],$_POST['e'],$_POST['f'],$_POST['g'],$_POST['h'])); // on affiche le résultat pour le visiteur echo 'Vos infos on ete ajoutees.'.'<br /> '; } // On vérifie si les champs sont vides else { echo '<h1> <p style="text-align:center;color:red"> Champs vide </h1></p>'; var_dump($sql['nom']); } ?>

Je tiens a preciser qu'il n'y a aucune erreur apparente j'ai chercher la source du problème mais je n'ai absolument rien trouvé

3 réponses

Carouge10, il y a 5 ans

bonjour.
activation des erreurs PDO
pas besoin de faire 3 fois la connexion

Nusrogame, il y a 5 ans

@Carouge10, Merci pour ta reponse je l'est ai enlever c'est vrai que ça ma enlever beaucoup de ligne de code

@lolo3129, Il y'a des chances que cela soit ça car dans ma table produit il y'a des colonnes en (entiers,chaine de carectères et float) quelle serait la solution pour pallier a se problème ?

Nusrogame, il y a 5 ans

Bonjour a tous j'ai trouver la source de mon problème

Il faut remplacer cela

<option value="<?php $categorie['id'] ?>"><?php echo $categorie['nom']?> </option> <?php endforeach; ?> <option value="<?php $taux['id'] ?>"><?php echo $taux['taux']?> </option> <?php endforeach; ?>

par cela:

<option value="<?= $categorie['id_categorie'] ?>"><?php echo $categorie['nom']?> </option> <?php endforeach; ?> <option value="<?= $taux['id'] ?>"><?php echo $taux['taux']?> </option> <?php endforeach; ?>