8768 sujets

Développement web côté serveur, CMS

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 Smiley smile

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
}
?>
Salut,

Que donne les var_dump() ?


var_dump($_POST['Prenom']) ?
var_dump($_POST['Name']) ?
var_dump($_POST['Adresse']) ?
var_dump($donneebdd) ?
Salut,
pourquoi est ce que tu mets des magics quotes ( alt gr+7 -> ` ) un peu partout ?
J'ai jamais compris l'intérêt (sauf embrouiller les débutant qui ensuite mettent des simples quotes un peu partout au petit bonheur la chance, et souvent pour rien)

Tu as une clé primaire sur ta table client ? Si oui laquelle ? (Peut être que tu as un soucis a ce niveau la qui empêche l'ajout de données). En l'état je ne vois pas d'erreur dans le code :s.


Edit : ah et cela serait pas mal d'utiliser les balises de "colorisation syntaxique" pour qu'on puisse mieux lire ton code Smiley smile
Modifié par mathieu1004 (31 May 2017 - 13:29)