Impossible d'inserer les données du formulaire en base de données. Help!
mouls22
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je n'arrive pas à insérer les données du formulaire PHP dans ma base de données Mysql. Seule la photo à envoyer dans le formulaire apparait dans le dossier pictures présent dans le répertoire www. Je n'arrive toujours pas à trouver ce qui ne vas pas, et pourtant le code n'affiche pas d'erreur. Est-ce que à cause de la liste déroulante qu'il faut changer de formule? Help!!!
Voici le code:
Je n'arrive pas à insérer les données du formulaire PHP dans ma base de données Mysql. Seule la photo à envoyer dans le formulaire apparait dans le dossier pictures présent dans le répertoire www. Je n'arrive toujours pas à trouver ce qui ne vas pas, et pourtant le code n'affiche pas d'erreur. Est-ce que à cause de la liste déroulante qu'il faut changer de formule? Help!!!
Voici le code:
<?php $bdd= new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', ''); $photo=""; if(isset($_POST['formannonce'])) { $phone= intval($_POST['phone']); $mail = htmlspecialchars($_POST['mail']); $categorie= ($_POST['categorie']); $villes= ($_POST['villes']); $titre = htmlspecialchars($_POST['titre']); $prix= intval($_POST['prix']); $presentation= nl2br(htmlspecialchars($_POST['presentation'])); $photo= ($_FILES['img']['name']); $upload= "pictures/".$photo; move_uploaded_file($_FILES['img']['tmp_name'],$upload); $sql= "INSERT INTO annonces(categorie,ville,titre,presentation,prix,telephone,email,photo) VALUES('$categorie','$villes','$titre','$presentation','$prix','$phone','$mail','$photo')"; } ?> <html> <head> <meta charset="utf-8"> <style> legend{ text-align: center; } </style> <link rel="stylesheet" href="style.css"> </head> <body> <div class= "pub"> <form action="" method="POST" enctype="multipart/form-data"> <p> <fieldset> <legend>Déposer votre annonce</legend> <label for="categorieannonce"> Catégorie de votre annonce</label> <select name="categorie"> <optgroup label= "Immobilier"> <option value= "appartements"> Appartements</option> <option value= "maisons"> Maisons et Villas</option> <option value= "terrains"> Terrains</option> <option value= "locations"> Location</option> <option value= "bureaus"> Bureaux</option> </optgroup> <br> <br> <optgroup label= "Véhicules"> <option value= "voitures"> Voitures</option> <option value= "motos"> Motos</option> <option value= "pieces"> Pièces et accessoires pour véhicules</option> <option value= "velos"> Vélos</option> <option value= "vehiculepro"> Véhicules Professionnels</option> </optgroup> <optgroup label= "Informatique et Multimédia"> <option value= "telephone"> Téléphone</option> <option value= "ordinateur"> Ordinateurs Portables</option> <option value= "accessoires"> Accessoires informatiques</option> <option value= "ordibureau"> Ordinateurs de Bureaux</option> </optgroup> <optgroup label= "Cours"> <option value= "voitures"> Privés</option> <option value= "motos"> Collectifs</option> </optgroup> </select> <br> <br> <label for="ville">Ville</label> <select name="villes"> <option value= "A"> Nouakchott</option> <option value= "B"> Nouadhibou</option> <option value= "C"> Atar</option> <option value= "D"> Rosso</option> </select> <br> <br> <label for= "titre">Titre de votre annonce</label> <input type="text" id="titre" name="titre"> <br> <br> <label for= "presentation">Présentation de votre annonce</label> <textarea id="presentation" name="presentation" rows="4" cols="50"> </textarea> <br> <br> <br> <br> <label for= "prix">Prix</label> <input type="number" id="prix" name="prix"> <br> <br> <label for="phone">Téléphone</label> <input type="tel" id="phone" name="phone"> <br> <br> <label for= "mail">Email (optionnel) </label> <input type="email" id="mail" name="mail" /> <br> <br> <label for= "image">Photos</label> <input type="file" id="img" name="img" accept="image/png, image/jpeg"> <br> <br> <input type="submit" id='submit' name="formannonce" value='Valider' > </form> </fieldset> </div> </div> </body> </html>
A voir également:
- Impossible d'inserer les données du formulaire en base de données. Help!
- Fuite données maif - Guide
- Whatsapp formulaire opposition - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Insérer video powerpoint - Guide
2 réponses
Bonjour,
Et bien.. c'est simple .....
Tu as écris ta requête SQL ... mais à aucun moment tu ne l'exécutes .... ( comme si tu avais rempli un verre d'eau que tu n'avais pas bu... et que tu nous dises ensuite que tu as toujours soif... :-) )
Je te conseille, au passage, d'utiliser les requêtes préparées ainsi que de bien activer l'affichage des éventuels messages d'erreurs PDO.
Pour ça, regarde l'exemple fourni ici https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et bien.. c'est simple .....
Tu as écris ta requête SQL ... mais à aucun moment tu ne l'exécutes .... ( comme si tu avais rempli un verre d'eau que tu n'avais pas bu... et que tu nous dises ensuite que tu as toujours soif... :-) )
Je te conseille, au passage, d'utiliser les requêtes préparées ainsi que de bien activer l'affichage des éventuels messages d'erreurs PDO.
Pour ça, regarde l'exemple fourni ici https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Super! Merci infiniment pour le lien :). Voici donc l'exécution de la requête pour que le code marche:
$sql= "INSERT INTO annonces(categorie,ville,titre,presentation,prix,telephone,email,photo) VALUES('$categorie','$villes','$titre','$presentation','$prix','$phone','$mail','$photo')"; $datas= array($categorie, $villes, $titre, $phone, $mail, $prix, $presentation, $photo); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
presque ...
remplace
par
remplace
$sql= "INSERT INTO annonces(categorie,ville,titre,presentation,prix,telephone,email,photo) VALUES('$categorie','$villes','$titre','$presentation','$prix','$phone','$mail','$photo')";
par
$sql= "INSERT INTO annonces(categorie,ville,titre,presentation,prix,telephone,email,photo) VALUES(?,?,?,?,?,?,?)";