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 -
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 :
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:
- Insertion php mysql bdd
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
2 réponses
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
===>>> `Name, ... il te manque un `
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 `
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.
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.
J'ai l'ai fin avec une erreur aussi nulle aha!
Merci de ton aide et pour le tuyau avec le PDO !
Cordialement :)