Insertion php mysql bdd

[Résolu/Fermé]
Signaler
Messages postés
34
Date d'inscription
mardi 31 mai 2016
Statut
Membre
Dernière intervention
29 juin 2017
-
Messages postés
34
Date d'inscription
mardi 31 mai 2016
Statut
Membre
Dernière intervention
29 juin 2017
-
Bonjour à vous!

Alors voilà mon soucis:

Avec un formulaire, j'essai d'insérer les éléments dans ma bdd!
Le soucis, comme vous l'avez compris, ça ne marche pas! Pourtant PHP ne me renvoie pas d'erreur. J'arrive pourtant à modifier et supprimer des éléments de ma bdd (vu que je l'affiche à l'écran avec php), seul l'insertion ne fonctionne pas!

Ma bdd se nomme : finelio
La table est : clients
Les champs (nommé dans ma bdd) pour l'instant que je cherche à insérer sont : Name, Prenom, Addresse

Vous trouverez dans le code des balise php que je ferme et que j'ouvre directement après, c'est normal. C'était simplement du code HTML pour affranchir ma page que j'ai enlevé.

Je vous remercie d'avance pour vous être penché sur mon problème :)

Voici mon code :

<!DOCTYPE html>
<html>
<head>
 <meta charset='utf-8' />
 <title>Page2.php</title>
</head>
<body>
 <center> 
 <h1>Insertion </h1>
 <table border='1'>
  <tr>
   <td>Nom</td>
   <td>Prenom</td>
   <td>Adresse</td>   
  </tr>
  <form action='Page2.php' method='POST'>

<?php
 $maBase=new PDO('mysql:host=localhost; dbname=finelio; charset=utf8','root', '');
 $donneebdd=$maBase->query("SELECT * FROM `clients`");
 while ($TableauDeDonnee=$donneebdd->fetch()) 
 { 
  echo "<tr>";
  echo "<td>".$TableauDeDonnee['Name']."</td><td>".$TableauDeDonnee['Prenom']."</td><td>".$TableauDeDonnee['Adresse']."</td>
  <td><input type='checkbox' name='ID[]' value=".$TableauDeDonnee['id']."></td>"; //affichage de la bdd
  echo"</tr>";
 }
 $donneebdd ->closeCursor();
?>
 
 </table>

<?php
 if(isset($_POST['Inserer'])) //insertion nouveau champ
 {
 
  $donneebdd=$maBase->query('INSERT INTO `clients`( `Name, `Prenom`, `Adresse`) VALUES ("'.$_POST['Name'].'" , "'.$_POST['Prenom'].'" , "'.$_POST['Adresse'].'" )');

  // Requête SQL insérer un nouveau champ
?> 
  
<?php 
 }
 
 elseif (isset($_POST['Modifier'])) //Modifier champ
 {
  
  foreach ($_POST['ID'] as $id) 
  {
   $Nom = $_POST["Name"];
   $Prenom = $_POST["Prenom"];
   $Adresse = $_POST["Adresse"];


   $maBase->query('UPDATE `clients` SET `Name`="'.$Nom.'",`Prenom`="'.$Prenom.'",`Adresse`="'.$Adresse.'" WHERE `id`="'.$id.'"');
   // Requête SQL modifier un champ
?>
 
<?php  
  }

 }
 
 elseif (isset($_POST['Supprimer'])) // Supprimer champ
 {
  
  foreach ($_POST['ID'] as  $id) 
  {
   $maBase->query('DELETE FROM `clients` WHERE `id`="'.$id.'"'); // Requête SQL supprimer un nouveau champ
?>

 
<?php  
  }
 }

 elseif (isset($_POST['Deconnexion'])) 
 {
  header('Location: test.php'); //Retour à l'accueil
 } 

 else {
?>
    
     <p>Nom : <input type='text' name='Name' id='Name' /></p>
     <p>Prenom : <input type='text' name='Prenom' id='Prenom' /></p>
     <p>Adresse : <input type='text' name='Adresse' id='Adresse'/></p>
     <input type='submit' name='Inserer'  value="Inserer">
     <input type='submit' name='Modifier'  value="Modifier">
     <input type='submit' name='Supprimer'  value='Supprimer' >
     <p><input type='submit' name='Deconnexion'  value="Deconnexion"></p>
     
   </form>
<?php
  }
?>


EDIT : Ajout des balises de code (la coloration syntaxique) - Jordane45

2 réponses

Messages postés
33478
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2021
3 720
Bonjour,

Commence par activer la gestion des erreurs PDO.
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Tu verras que tu as une erreur au niveau de ta requête
$donneebdd=$maBase->query('INSERT INTO `clients`( `Name, `Prenom`, `Adresse`) VALUES ("'.$_POST['Name'].'" , "'.$_POST['Prenom'].'" , "'.$_POST['Adresse'].'" )');


===>>> `Name, ... il te manque un `

Messages postés
34
Date d'inscription
mardi 31 mai 2016
Statut
Membre
Dernière intervention
29 juin 2017

Bonjour,

J'ai l'ai fin avec une erreur aussi nulle aha!

Merci de ton aide et pour le tuyau avec le PDO !

Cordialement :)
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Bonjour,

Commencez par mettre les balises de code afin que nous puissions le lire...

Ensuite, la méthode de gestion des requêtes SQL est extrêmement dangereuse car elle permet des injections SQL faciles.

Ensuite, lorsque des données ne sont pas insérées dans une base SQL, il s'agit souvent du type de la donnée attendue par mySQL qui n'est pas bon. Exemple : Le type sur mySQL est int, et je tente d'y entrer du texte. Le PHP ne génère alors pas d'erreur et rien ne se passe.

En espérant avoir aidé un peu..

Cordialement.
Messages postés
34
Date d'inscription
mardi 31 mai 2016
Statut
Membre
Dernière intervention
29 juin 2017

Bonjour,

Les balises retirés sont inutile dans mon problème :/

J'ai vérifié du coup mes types de champs et ils sont correct! J'ai aussi tenté une insertion directement depuis ma BDD et ça marche aussi :)

Cordialement.