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   -
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 51 Date d'inscription   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   591
 
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   Statut Membre Dernière intervention   591
 
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 51 Date d'inscription   Statut Membre Dernière intervention   9
 
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   Statut Membre Dernière intervention   591
 
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 130 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir, j'ai rajouté un name et lai appelé dans le isset mais ça ne marche toujours pas
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
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 130 Date d'inscription   Statut Membre Dernière intervention  
 
Toujours pas
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Obtiens-tu une erreur quelconque ou rien ne se passe?
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
rien ne se passe, la page se recharge et rien n'est modifié.
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai un menu déroulant en dessous en fonction de ma BD, la co marche bien ...
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   591
 
Remontre-moi ton code en entier stp comme il est en ce moment.
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
ligne 65 qui correspond à mon $prep->execute(array('t....
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
<!-- 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   Statut Membre Dernière intervention   591
 
Ta ligne $prep=$connexion->prepare($sql); est toujours présente?
0
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention  
 
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