Insertion php mysql bdd

Résolu/Fermé
SleepyAshes Messages postés 34 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 29 juin 2017 - Modifié le 31 mai 2017 à 10:44
SleepyAshes Messages postés 34 Date d'inscription mardi 31 mai 2016 Statut Membre Dernière intervention 29 juin 2017 - 31 mai 2017 à 10:52
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
31 mai 2017 à 10:46
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 mardi 31 mai 2016 Statut Membre Dernière intervention 29 juin 2017
31 mai 2017 à 10:52
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 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
30 mai 2017 à 17:25
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 mardi 31 mai 2016 Statut Membre Dernière intervention 29 juin 2017
31 mai 2017 à 09:10
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