Problème insertion BD
Résolu
Ibilolz
Messages postés
130
Date d'inscription
Statut
Membre
Dernière intervention
-
GrifOli Messages postés 2111 Date d'inscription Statut Membre Dernière intervention -
GrifOli Messages postés 2111 Date d'inscription Statut Membre Dernière intervention -
J'ai écris le code suivant pour ajouter un article dans ma table qui est composé d'un id, d'un titre, d'un texte et d'une img_article. Cependant rien ne se passe lors du clique sur le bouton, la page se recharge et aucune insertion n'est faite. Ma connexion est dans un include en haut de ma page et elle marche.
Merci d'avance de me répondre.
Merci d'avance de me répondre.
<form method="post" action="index.php"> <div class="row 50%"> <div class="6u"> <input type="text" name="titre" placeholder="Titre" required/> </div> </div> <div class="row 50%"> <div class="12u"> <textarea name="texte" placeholder="Article" required></textarea> </div> </div> <div class="row 50%"> <input name="image" type="file" value="Choisir une image accept="image/jpg, image/gif, image/png" required></p> </div> <div class="row"> <div class="12u"> <input type="submit" value="Ajout article" /> </div> </div> </form> <?php if(isset($_POST['titre']) && isset($_POST['texte']) && isset($_FILES['image'])){ $titre=$_POST['titre']; $texte=$_POST['texte']; $image=$_FILES['image']; $sql="INSERT INTO article VALUES(null, :titre, :texte, :image)"; $prep=$connexion->prepare($sql); $prep->execute(array('titre' => $titre, 'texte' => $texte, 'image' => '../images' . $image['name'])) && move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name'])); } ?>
A voir également:
- Problème insertion BD
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
9 réponses
Bonjour,
Tu dois indiquer dans quelles colonnes tu insères tes valeurs.
Question: veux-tu vraiment mettre une valeur "null" au id? Pourquoi ne la laisses-tu pas s'incrémenter toute seule? Idéalement, le id devrait être différent pour chacune de tes lignes dans ta bdd, surtout si tu veux y faire référence à partir d'une autre table.
Tu dois indiquer dans quelles colonnes tu insères tes valeurs.
$sql="INSERT INTO article (titre, texte, img_article) VALUES(:titre, :texte, :image)";
Question: veux-tu vraiment mettre une valeur "null" au id? Pourquoi ne la laisses-tu pas s'incrémenter toute seule? Idéalement, le id devrait être différent pour chacune de tes lignes dans ta bdd, surtout si tu veux y faire référence à partir d'une autre table.
Remplace cette ligne là:
par celles-ci:
$prep->execute(array('titre' => $titre, 'texte' => $texte, 'img_article' => '../images' . $image['name'])) && move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name']));
par celles-ci:
$prep->execute(array('titre' => $titre, 'texte' => $texte, 'img_article' => '../images' . $image['name'])); move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name']));
Juste pour voir, essai de passer par un "exec" au lieu du "prepare".
Pour savoir si ça viens de la préparation ou de quelque par d'autre.
Edit : Modifie cette partie là aussi :
Oh well the devil makes us sin
But we like it when we're spinning, in his grip.
Pour savoir si ça viens de la préparation ou de quelque par d'autre.
Edit : Modifie cette partie là aussi :
$prep->execute(array( "titre" => $titre, "texte" => $texte, "img_article" => '../images' . $image['name'])) && move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name']));
Oh well the devil makes us sin
But we like it when we're spinning, in his grip.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai trouvé.
Tu dois ajouter cela dans ta balise <form> :
Tu dois ajouter cela dans ta balise <form> :
<form method="post" action="index.php" enctype="multipart/form-data">
Bonsoir, je l'ai testé mais toujours aucune action ..
<div class="row"> <div class="12u"> <input type="submit" name="bouton" value="Ajout article" /> </div> </div> </form> <?php if(isset($_POST['titre']) && isset($_POST['texte']) && isset($_FILES['image']) && isset($_POST['bouton'])){ $titre=$_POST['titre']; $texte=$_POST['texte']; $image=$_FILES['image']; $sql="INSERT INTO article (titre,texte,img_article) VALUES( :titre, :texte, :img_article)"; $prep=$connexion->prepare($sql); $prep->execute(array('titre' => $titre, 'texte' => $texte, 'img_article' => '../images' . $image['name'])) && move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name'])); } ?>
Bon, maintenant quelque chose à l'air de se passe puis ce que j'ai des erreurs. ^^
( ! ) Notice: Undefined variable: prep in C:\wamp\www\ProjetRaiateaV2\admin\index.php on line 65
! ) Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\ProjetRaiateaV2\admin\index.php on line 65
( ! ) Notice: Undefined variable: prep in C:\wamp\www\ProjetRaiateaV2\admin\index.php on line 65
! ) Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\ProjetRaiateaV2\admin\index.php on line 65
<!-- Ajout Article -->
<section id="Ajj" class="two">
<div class="container">
<header>
<h2>Ajout d'un article</h2>
</header>
<form method="post" action="index.php" enctype="multipart/form-data">
<div class="row 50%">
<div class="6u">
<input type="text" name="titre" placeholder="Titre" required/>
</div>
</div>
<div class="row 50%">
<div class="12u">
<textarea name="texte" placeholder="Article" required></textarea>
</div>
</div>
<div class="row 50%">
<input name="image" type="file" value="Choisir une image accept="image/jpg, image/gif, image/png" required></p>
</div>
<div class="row">
<div class="12u">
<input type="submit" name="bouton" value="Ajout article" />
</div>
</div>
<?php
$connexion->query('SET NAMES UTF8');
if(isset($_POST['titre']) && isset($_POST['texte']) && isset($_FILES['image']) && isset($_POST['bouton'])){
$titre=$_POST['titre'];
$texte=$_POST['texte'];
$image=$_FILES['image'];
$sql="INSERT INTO article (titre,texte,img_article) VALUES( :titre, :texte, :img_article)";
$prep->execute(array('titre' => $titre, 'texte' => $texte, 'img_article' => '../images' . $image['name']));
move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name']));
}
?>
</form>
</div>
</section>
<!-- /Ajout Article -->
<section id="Ajj" class="two">
<div class="container">
<header>
<h2>Ajout d'un article</h2>
</header>
<form method="post" action="index.php" enctype="multipart/form-data">
<div class="row 50%">
<div class="6u">
<input type="text" name="titre" placeholder="Titre" required/>
</div>
</div>
<div class="row 50%">
<div class="12u">
<textarea name="texte" placeholder="Article" required></textarea>
</div>
</div>
<div class="row 50%">
<input name="image" type="file" value="Choisir une image accept="image/jpg, image/gif, image/png" required></p>
</div>
<div class="row">
<div class="12u">
<input type="submit" name="bouton" value="Ajout article" />
</div>
</div>
<?php
$connexion->query('SET NAMES UTF8');
if(isset($_POST['titre']) && isset($_POST['texte']) && isset($_FILES['image']) && isset($_POST['bouton'])){
$titre=$_POST['titre'];
$texte=$_POST['texte'];
$image=$_FILES['image'];
$sql="INSERT INTO article (titre,texte,img_article) VALUES( :titre, :texte, :img_article)";
$prep->execute(array('titre' => $titre, 'texte' => $texte, 'img_article' => '../images' . $image['name']));
move_uploaded_file($image['tmp_name'], '../images/' . basename($image['name']));
}
?>
</form>
</div>
</section>
<!-- /Ajout Article -->