Mes données ne s'enregistre pas dans ma base de données

Résolu/Fermé
ir - 11 juin 2020 à 14:29
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 - 12 juin 2020 à 12:31
Bonjour,

mes données ne s'enregistre pas dans ma base de donnees


<!DOCTYPE html>
<html>
<head>
<title>upload</title>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="">
<br><input type="title" name="article" id="article" placeholder="article" required></br>
<br><input type="file" name="image" id="image" placeholder="image" required></br>
<br><input type="text" name="description" id="description" placeholder="description de l'article" required></br>
<br><input type="text" name="prix" id="prix" placeholder="prix" required></br>
<br><input type="text" name="contacte" id="contacte" placeholder="contacte" required></br>
<br><input type="submit" name="formsend" id="formsend" value="publier">
<?php
required_once("up.php")
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if (isset($_POST['formsend'])) {

$article = (isset($_POST['article']))? $_POST['article'] :"" ;
$image = (isset ($_file['image']))? $_file['image'] :"" ;
$description = (isset($_POST['description']))? $_POST['description']:"";
$prix = (isset($_POST['prix']))? $_POST['prix']:"";
$contacte = (isset($_POST['contacte']))?$_POST['contacte']:"";

}
$stmt = $bdd->prepare("INSERT INTO articles (article , image , description , prix , contacte ) VALUES('article', 'image' , 'description', 'prix', 'contacte')");
$stmt->execute(array($article, $image, $description, $prix, $contacte));
echo "donnee inserer";
?>
</form>


</body>
</html>

2 réponses

yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
11 juin 2020 à 14:45
0
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703
11 juin 2020 à 15:00
Bonjour,

Ton code est faux...

Soit tu écris :
$sql = "INSERT INTO articles (article , image , description , prix , contacte ) 
        VALUES(:article, :image , :description, :prix, :contacte)";

$datas = array(
':article'=>$article
, ':image'=>$image
, ':description'=>$description
, ':prix'=>$prix
, ':contacte'=>$contacte
);

$stmt = $bdd->prepare($sql);
$stmt->execute($datas);


Soit tu le fais comme ça
$sql = "INSERT INTO articles (article , image , description , prix , contacte ) 
        VALUES(?,?,?,?,?)";

$datas = array($article, $image, $description, $prix, $contacte)

$stmt = $bdd->prepare($sql);
$stmt->execute($datas)


Moi j'ai une grosse préférence pour la première solution.

Et comme le dit Yg_be... pense à appliquer les conseils donnés ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

Ainsi que celles la :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


PS: A l'avenir, pense à préciser le LANGAGE dans les balises de code afin d'avoir la coloration syntaxique.
Explications ( à lire entièrement ! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

.



0
merci bcp sa commence a marcher
mais seul l'image ne rentre pas dans la bdd maina

<!DOCTYPE html>
<html>
<head>
<title>upload</title>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="upload.php" method="POST" enctype="multipart/form-data">
<br><input type="title" name="article" id="article" placeholder="article" required></br>
<br><input type="file" name="image" id="image" placeholder="image" required></br>
<br><input type="text" name="description" id="description" placeholder="description de l'article" required></br>
<br><input type="text" name="prix" id="prix" placeholder="prix" required></br>
<br><input type="text" name="contacte" id="contacte" placeholder="contacte" required></br>
<br><input type="submit" name="formsend" id="formsend" value="publier">
<?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if (isset($_POST['formsend'])) {

$article = (isset($_POST['article']))? $_POST['article'] :"" ;
$image = (isset ($_POST['image']))? $_POST['image'] :"" ;
$description = (isset($_POST['description']))? $_POST['description']:"";
$prix = (isset($_POST['prix']))? $_POST['prix']:"";
$contacte = (isset($_POST['contacte']))?$_POST['contacte']:"";

}
$sql = "INSERT INTO articles (article , image , description , prix , contacte )
VALUES(:article, :image , :description, :prix, :contacte)";

$datas = array(
':article'=>$article
, ':image'=>$image
, ':description'=>$description
, ':prix'=>$prix
, ':contacte'=>$contacte
);

$stmt = $bdd->prepare($sql);
$stmt->execute($datas);
?>
</form>


</body>
</html>
0
jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 703 > ir
12 juin 2020 à 12:30
Déjà... on t'a donné des liens à lire....
Visiblement tu ne l'as pas fait !

Ensuite, une image ne se stocke pas directement en BDD ( il faut éviter ! )
A la place, on enregistre l'image sur le serveur et on stocke en BDD uniquement le chemin vers celle-ci.

A savoir qu'un fichier n'est pas dans les variables POST ... mais FILES
https://www.php.net/manual/fr/reserved.variables.files.php

Je t'invite à trouver des tutos sur le net qui expliquent comment uploader des fichiers sur le serveur.


Et surtout... va relire les liens qu'on t'a donné et appliques les conseils ( consignes ! ) qui s'y trouvent !!
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38288 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024
12 juin 2020 à 12:31
d'accord merci beaucoup
0