Insertion php mysql bdd

Résolu
SleepyAshes Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
SleepyAshes Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Commence par activer la gestion des erreurs PDO.
https://forums.commentcamarche.net/forum/affich-37584941-php-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 `

0
SleepyAshes Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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

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

Cordialement :)
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
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.
-1
SleepyAshes Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0