cs_nicodu94
Messages postés7Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention13 janvier 2009
-
13 janv. 2009 à 17:53
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
13 janv. 2009 à 19:43
Salut à tous, je suis débutant en php et je cherche à modifier un code. Je lutte depuis plus d'une semaine dessus.
Je veut créer un back office.
J'ai 2 pages:
1 page pour afficher tous les liens de ma base de donnees,
1 page pour soit modifier, soit insérer, soit supprimé une entrée de ma table.
-> Le probleme est le suivant: lorsque je veut modifier une entrée, il m'en crèe une nouvelle.
Je m'en sort plus, je ne comprend plus rien. Si vous pouvez m'aider, merci d'avance.
* Le champ id ne doit pas etre en auto-increment.
-> ma première page s'appelle liste_encyclopedie.php
[rediger_encyclopedie.php Ajouter une encyclopedie]
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("faunafricaine");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une entrée ?
//-----------------------------------------------------
if (isset($_POST['id']) AND isset($_POST['titre']) AND isset($_POST['famille']) AND isset($_POST['physique']) AND isset($_POST['nourriture']) AND isset($_POST['accouplement']) AND isset($_POST['image']))
{
$id = addslashes($_POST['id']);
$titre = addslashes($_POST['titre']);
$famille = addslashes($_POST['famille']);
$physique = addslashes($_POST['physique']);
$nourriture = addslashes($_POST['nourriture']);
$accouplement = addslashes($_POST['accouplement']);
$image = addslashes($_POST['image']);
// On vérifie si c'est une modification d'entrée ou pas
if ($_POST['id_encyclopedie'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO encyclopedie VALUES('".$id."', '" . $titre . "', '" . $famille . "', '" . $physique . "', '" . $nourriture . "', '" . $accouplement . "', '" . $image . "')");
}
else
{
// On protège la variable "id_encyclopedie" pour éviter une faille SQL
$_POST['id_encyclopedie'] = addslashes($_POST['id_encyclopedie']);
// C'est une modification, on met juste à jour les contenus
mysql_query("UPDATE encyclopedie SET id='" . $id . "', titre='" . $titre . "', famille='" . $famille . "' , physique='" . $physique . "', nourriture='" . $nourriture . "', accouplement='" . $accouplement . "', image='" . $image . "'WHERE id='" . $_POST['id_encyclopedie'] . "'");
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une entrée ?
//--------------------------------------------------------
if (isset($_GET['supprimer_encyclopedie'])) // Si on demande de supprimer une entrée
{
// Alors on supprime l' entrée correspondante
// On protège la variable "id_encyclopedie" pour éviter une faille SQL
$_GET['supprimer_encyclopedie'] = addslashes($_GET['supprimer_encyclopedie']);
mysql_query('DELETE FROM encyclopedie WHERE id=\'' . $_GET['supprimer_encyclopedie'] . '\'');
}
?>
Modifier |
Supprimer |
Titre |
Id |
<?php
$retour = mysql_query('SELECT * FROM encyclopedie ORDER BY id');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les entrées
{
?>
----
<?php echo '[liste_encyclopedie.php Retour à la liste des entrées]
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("faunafricaine");
if (isset($_GET['modifier_encyclopedie'])) // Si on demande de modifier une entrée
{
// On protège la variable "modifier_encyclopedie" pour éviter une faille SQL
$_GET['modifier_encyclopedie'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_encyclopedie']));
// On récupère les infos de l'entrée correspondante
$retour = mysql_query('SELECT * FROM encyclopedie WHERE id=\'' . $_GET['modifier_encyclopedie'] . '\'');
$donnees = mysql_fetch_array($retour);
// On place les contenus dans des variables simples
$id = stripslashes($donnees['id']);
$titre = stripslashes($donnees['titre']);
$famille = stripslashes($donnees['famille']);
$physique = stripslashes($donnees['physique']);
$nourriture = stripslashes($donnees['nourriture']);
$accouplement = stripslashes($donnees['accouplement']);
$image = stripslashes($donnees['image']);
$id_encyclopedie = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle entrée
{
// Les variables sont vides, puisque c'est une nouvelle entrée
$id = '';
$titre = '';
$famille = '';
$physique = '';
$nourriture = '';
$accouplement = '';
$image = '';
$id_encyclopedie = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="liste_encyclopedie.php" method="post">