Problème insertion BD

Résolu/Fermé
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023 - 18 nov. 2014 à 19:16
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 - 18 nov. 2014 à 22:50
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.

  <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:

9 réponses

Liightman Messages postés 49 Date d'inscription lundi 17 novembre 2014 Statut Membre Dernière intervention 7 janvier 2016 9
18 nov. 2014 à 20:30
Salut!

Rajoute une "name" sur ton bouton et fait le nécessaire sur php et ça devrais fonctionner :)
1
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
18 nov. 2014 à 20:59
Bonjour,

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.
1
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
Modifié par GrifOli le 18/11/2014 à 21:15
Remplace cette ligne là:
$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']));
1
Liightman Messages postés 49 Date d'inscription lundi 17 novembre 2014 Statut Membre Dernière intervention 7 janvier 2016 9
Modifié par Liightman le 18/11/2014 à 21:57
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 :

$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.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
18 nov. 2014 à 22:02
J'ai trouvé.

Tu dois ajouter cela dans ta balise <form> :

<form method="post" action="index.php" enctype="multipart/form-data">
1
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 20:54
Bonsoir, j'ai rajouté un name et lai appelé dans le isset mais ça ne marche toujours pas
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
Modifié par Ibilolz le 18/11/2014 à 21:05
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']));
    
     }
 ?>
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 21:26
Toujours pas
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
18 nov. 2014 à 21:28
Obtiens-tu une erreur quelconque ou rien ne se passe?
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 21:32
rien ne se passe, la page se recharge et rien n'est modifié.
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 21:33
J'ai un menu déroulant en dessous en fonction de ma BD, la co marche bien ...
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 22:27
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
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
18 nov. 2014 à 22:32
Remontre-moi ton code en entier stp comme il est en ce moment.
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 22:32
ligne 65 qui correspond à mon $prep->execute(array('t....
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 22:38
<!-- 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 -->
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
18 nov. 2014 à 22:39
Ta ligne $prep=$connexion->prepare($sql); est toujours présente?
0
Ibilolz Messages postés 131 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 26 juin 2023
18 nov. 2014 à 22:49
problème résolu, en effet elle n'était plus présente. Je te remercie pour le temps que tu as passé pour m'aider !! :)
0