Mise à jour de la base de données
Bonjour,
Actuellement j'ai un soucis avec la mise à jour, quand je veux effectuer une mise à jour, ça change tt le contenu de ma BDD :/
C'est un petit code qui me permet une gestion de présence journalière.
Code accueil.php (formulaire d'ajout/update)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php
$query_users = "SELECT * FROM utilisateurs,agent WHERE utilisateurs.nservice = '1' AND agent.nservice = '1'"; // Tri la table agent sur le champs Nservice
$users = mysql_query($query_users, $dbprotect) or die(mysql_error());
$indice = 0;
?>
<form action="crea.php" method="post">
Entrez la Date <input type="button" value="Calendrier" onClick="displayCalendar(document.forms[0].date,'yyyy/mm/dd',this)">
<input readonly type="text" name="date" value="">
<?php
while( $result = mysql_fetch_object( $users ) )
{
?>
<table width="495" border="1">
<tr>
<td>Agent:</td>
<td><input type="text" size="20" name="agent<?php echo $indice;?>" value="<?php echo ($result->nom);?> <?php echo ($result->prenom);?>"> <select name="etat<?php echo $indice;?>">
<option>Présent</option>
<option>Congès Annuels</option>
<option>Congès Exceptionnel</option>
<option>Mission</option>
<option>Récupération</option>
</select></td>
</tr>
<input type="hidden" name="nchrono<?php echo $indice;?>" value="<?php echo ($result->nchrono);?>">
<input type="hidden" name="login<?php echo $indice;?>" value="<?php echo ($result->login);?>">
<input type="hidden" name="lservice<?php echo $indice;?>" value="<?php echo ($result->lservice);?>">
<?php
$indice++;
}
?>
<input type="hidden" name="numIndice" value="<?php echo $indice;?>"/>
</table>
<input type="submit" value="valider" name="valider">
<input type="submit" value="Mise à jour" name="maj">
</form> |
crea.php (ajout du contenu de mon formulaire dans ma bdd)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| <?php
if(isset($_POST['valider']))
{
$indice = $_POST['numIndice'];
$valider = $_POST['valider'];
$date = $_POST['date'];
function user_exists($date)
{
$sql = 'SELECT `date` FROM presence_informatique WHERE date = \'' . addslashes($date) . '\' LIMIT 1';
$res = mysql_query($sql) or die ($sql.'<br />'.mysql_error());
return (mysql_num_rows($res) == 1);
}
if (user_exists($date))
{
echo('La date que vous avez saisie est déjà enregistrer!<br />');
echo('Si vous souhaitez écraser le contenu précédent veuillez cliquer sur le lien "<a href="update.php">suivant</a>"<br />');
}
else
{
if ( $indice > 0 ) {
for ( $i=0; $i < $indice; $i++ )
{
$lservice=$_POST['lservice'.$i];
$agent=$_POST['agent'.$i];
$nchrono=$_POST['nchrono'.$i];
$etat=$_POST['etat'.$i];
$login=$_POST['login'.$i];
$requete ="INSERT INTO presence_informatique (id,lservice,date,agent,nchrono,etat,login) values ('','$lservice','$date','$agent','$nchrono','$etat','$login')";
mysql_query($requete);
}
mysql_close();
echo "La date à bien été prise en charge pour les ".$indice." agent ";
}
}
}
else
echo "Merci de bien remplir le formulaire";
?> |
Code d'update
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <?php
if(isset($_POST['maj']))
{
$indice = $_POST['numIndice'];
$valider = $_POST['valider'];
$date = $_POST['date'];
if ( $indice > 0 ) {
for ( $i=0; $i < $indice; $i++ )
{
$lservice=$_POST['lservice'.$i];
$agent=$_POST['agent'.$i];
$nchrono=$_POST['nchrono'.$i];
$etat=$_POST['etat'.$i];
$login=$_POST['login'.$i];
$requete ="UPDATE presence_informatique SET
date='$date',
lservice='$lservice',
agent='$agent',
nchrono='$nchrono',
etat='$etat',
login='$login'";
mysql_query($requete);
}
}
echo "Mise à jour effectué<br>";
}
else
echo "La mise à jour à rencontré un problème<br>";
?> |
En faite quand je fais une mise à jour çà remplace tte ma bdd. J'aimerai tout simplement que quand on clic sur le bouton Mise à jour du formulaire ça fait une mise à jour que de la date voulu.
J'espère avoir été assez clair
Merci d'avance