Mise à jour dans base de données

Fermé
mackat Messages postés 3 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 20 février 2010 - 20 févr. 2010 à 20:07
mackat Messages postés 3 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 20 février 2010 - 20 févr. 2010 à 23:19
Bonjour,
j'ai un grand besoin d'aide pour un script php de mise à jour de données dans une base phpmyadmin.
Je vous plante le décor : on veut que l'administrateur puisse modifier les notices, pour y arriver j'ai cru comprendre qu'il fallait trois étapes : je récupère d'abord les données des notices que j'affiche par un numéro d'inventaire, lorsque l'on clique dessus on récupère les données dans un formulaire , on modifie les champs que l'on souhaite on valide et on voit un nouveau formulaire qui affiche les modifications apportées et validées dans la base.
Tout s'exécute, mais il semble que les changements ne s'effectue pas dans la base. Je ne comprends pas où ça coince et je dois rendre le projet dans la semaine, bref, c'est pas la joie!
Je vous mets les trois scripts : d'abord celui qui liste :

<?php
include_once("securite/connexion.inc.php");//récupération des données du fichier sécurité
$connexion=mysql_connect($host,$user,$password);//connexion à la base
mysql_select_db('FODIO4');//sélection de la base

$requete = "SELECT id_validation, numero_inventaire FROM objets WHERE id_validation=1 ORDER BY numero_inventaire ASC";
$resultat = mysql_query($requete);


while( $enregistrements = mysql_fetch_array($resultat) )
{
$modifier=$enregistrements['numero_inventaire'];
echo "Modifier la notice de l'objet suivant : ".$enregistrements ['numero_inventaire']." ";
echo "<a href=test_modifier.php?modifier=$modifier>Modifier</a></BR>";
}
mysql_close($connexion);
?>

celui de modification :

<?php

include_once("securite/connexion.inc.php");//récupération des données du fichier sécurité
$modifier=$_GET['modifier'];//rappel de la variable de liste.php
$connexion=mysql_connect($host,$user,$password);//connexion à la base
$base = mysql_select_db("FODIO4", $connexion);//sélection de la base



$requete = "SELECT * FROM objets WHERE numero_inventaire ='$modifier';";
$resultat = mysql_query($requete);


while ($enregistrements = mysql_fetch_array($resultat))

{
$numero_inventaire = $enregistrements['numero_inventaire'];
$datation = $enregistrements['datation'];
$dimensions = $enregistrements['dimensions'];
$denomination = $enregistrements['denomination'];
$domaine = $enregistrements['domaine'];
$description = $enregistrements['description'];
$id_periode_historique = $enregistrements['id_periode_historique'];
$id_lieu_conservation = $enregistrements['id_lieu_conservation'];
}
?>

<form action="test_modifier_base.php" method="POST">
<input type="hidden" name="modifier" value="<?php echo $modifier ?>" />
<p>Numéro d'inventaire : <?php echo $numero_inventaire;?> </p>
<p>Datation : <input type=text name=datation value="<?php echo $datation; ?>"/></p>
<p>Dimensions : <input type=text name=dimensions value="<?php echo $dimensions; ?>"/></p>
<p>Dénomination: <input type=text name=denomination value="<?php echo $denomination; ?>"/></p>
<p>Domaine : <input type=text name=domaine value="<?php echo $domaine; ?>"/></p>
<p>Description : <input type=text name=description value="<?php echo $description; ?>"/></p>
<p>Période historique : <input type=text name=periodeHistorique value="<?php echo $id_periode_historique; ?>"/></p>
<p>Lieu de conservation : <input type=text name=lieuConservation value="<?php echo $id_lieu_conservation; ?>"/></p>
<p><input type="submit" value="Modifier"></p>
</form>
<?php
mysql_close($connexion);
?>

et celui qui permet de voir les modifs dans la base :

<?php
include_once("securite/connexion.inc.php");
$numero_inventaire = $_POST['numero_inventaire'];
$datation = $_POST['datation'];
$dimensions = $_POST['dimensions'];
$denomination = $_POST['denomination'];
$domaine = $_POST['domaine'];
$description = $_POST['description'];
$id_periode_historique =$_POST['id_periode_historique'];
$id_lieu_conservation =$_POST['id_lieu_conservation'];

$connexion = mysql_connect($host,$user,$password);//connexion à la base
$base = mysql_select_db("FODIO4", $connexion);//sélection de la base

$mise_a_jour = "UPDATE objets SET numero_inventaire = '$numero_inventaire', datation = '$datation', dimensions = '$dimensions',
denomination = '$denomination', domaine = '$domaine', description='$description', id_periode_historique ='$id_periode_historique', id_lieu_conservation = '$id_lieu_conservation' WHERE numero_inventaire = '$modifier';";
$resultat_mise_a_jour = mysql_query($mise_a_jour);

$requete = "SELECT * FROM objets where numero_inventaire = '$modifier';";
$resultat = mysql_query($requete);

while ($enregistrements = mysql_fetch_array($resultat))
{
$numero_inventaire = $enregistrements['numero_inventaire'];
$datation = $enregistrements['datation'];
$dimensions = $enregistrements['dimensions'];
$denomination = $enregistrements['denomination'];
$domaine = $enregistrements['domaine'];
$description = $enregistrements['description'];
$id_periode_historique = $enregistrements['id_periode_historique'];
$id_lieu_conservation = $enregistrements ['id_lieu_conservation'];
}

if($requete)
{
echo "La modification a été correctement effectuée" ;
}
else
{
echo "La modification à échouée" ;
}
?>

<form action="test_modifier_base.php" method="POST">
<input type="hidden" name="modifier" value="<?php echo $modifier; ?>"/>
<p>Numéro d'inventaire : <?= $numero_inventaire ?> </p>
<p>Datation : <input type=text name=datation value="<?php echo $datation; ?>"/></p>
<p>Dimensions : <input type=text name=dimensions value="<?php echo $dimensions; ?>"/></p>
<p>Dénomination : <input type=text name=denomination value="<?php echo $denomination; ?>"/></p>
<p>Domaine : <input type=text name=domaine value="<?php echo $domaine; ?>"/></p>
<p>Description : <input type=text name=description value="<?php echo $description; ?>"/></p>
<p>Période historique : <input type=text name=periodeHistorique value="<?php echo $id_periode_historique; ?>"/></p>
<p>Lieu de conservation : <input type=text name=lieuConservation value="<?php echo $id_lieu_conservation; ?>"/></p>
<p><input type="submit" value="Modifier"></p>
<p><a href=test_liste.php>Retour à la liste</a></p>
</form>
<?php
mysql_close($connexion);
?>

Alors, quelqu'un a-t-il une brillante idée????
Merci pour votre aide
A voir également:

2 réponses

Bonjour

il y a au moins ça :
$numero_inventaire = $_POST['numero_inventaire']; // cette variable n'existe pas dans ton formulaire
$id_periode_historique =$_POST['id_periode_historique']; // cette variable n'a pas ce nom là dans ton formulaire
$id_lieu_conservation =$_POST['id_lieu_conservation']; // cette variable n'a pas ce nom là dans ton formulaire

$mise_a_jour = "UPDATE objets ... WHERE numero_inventaire = '$modifier';"; // 'modifier' existe bien dans le formulaire, mais n'est pas récupéré dans ce script
0
mackat Messages postés 3 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 20 février 2010
20 févr. 2010 à 23:19
Bonsoir,
merci pour cette réponse, j'ai apporté les modifications, mais malheureusement cela ne change rien!
0