Impossible d'inserer les données du formulaire en base de données. Help!
mouls22
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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
- Formulaire de réclamation facebook compte désactivé - 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(?,?,?,?,?,?,?)";