Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2011, 17h13   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 4
Points : 0
Points : 0
Par défaut Modifier une donnée d'une table par php

Bonjour
Je créé actuellement un site internet ou celui ci enregistre la demande de congé des employés

L employé rempli sa demande, le tout est enregistré dans une base de donnée ( dansla table "conges") et sur le site internet, il y a un tableau qui repertorie toute les demandes, et une colonne ou il y a "en attente ou refus ou accord de la direction"

Or j aimerai creer une colonne "modifier" afin que je puisse accepter ou refuser la demande!

Je pense qu'il faut utiliser la fonction "update", mais je ne vois pas quel script inscrire..

Je pense que qd je clique sur "Modifier",il faut que j'aille sur la page modifier.php, ou il y a recuperation de l'id et que je puisse modifier le "en attente" par "refus" ou "accord"


Mais comment faire ?

Merci de votre aide.
x5452 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 19h02   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Exactement comme tu le décris, ton bouton "modifier" est un submit de formulaire avec un champ hidden contenant l'id OU un lien avec l'id en paramètre.
Le lien ou le formulaire envoient vers une page de formulaire permettant de choisir le nouvel état (et le champ id en hidden toujours).
Ce formulaire renvoit vers un script qui execute l'update.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 20h43   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 4
Points : 0
Points : 0
Oui mais comment je recupere l' id de la ligne que je veux modifier???

Voici le script de mon tableau:
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
45
46
47
48
49
50
 
<p>Voici ce qui a été enregistré: </p>
 
	 <table class="planning">
   <tr>
       <th>Semaine</th>
	   <th>Nom</th>
       <th>Prénom</th>
	   	   <th>Souhait</th>
	   <th>Avis de la direction</th>
 
   </tr>
   <?php /
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "root", "***");
mysql_select_db("conges");
// On utilise la requête suivante pour récupérer les derniers messages :
$reponse = mysql_query("SELECT * FROM conges ORDER BY semaine");
// On se déconnecte de MySQL
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
 
?>
 
 
   <tr>
		<td><?php echo $donnees['semaine']; ?>
	   </td>
 
	  <td><?php echo $donnees['nom']; ?>
	   </td>
 
	 <td><?php echo $donnees['prenom']; ?>
	   </td>
 
	<td><?php echo $donnees['souhait']; ?>
	   </td>
 
	   <td><?php lien vers Modifier.php; ?>
	   </td>
	  	</tr>
 
	<?php
}
 
?>
 
</table>



Mais quel script pour la page modifier.php????
x5452 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 20h46   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Je t'ai déjà repondu :
Citation:
une page de formulaire permettant de choisir le nouvel état (et le champ id en hidden toujours)
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 21h10   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 4
Points : 0
Points : 0
Desolé mais je ne suis pas sur de bien comprendre!!

Est ce que cela veut dire que dans la colonne "direction, au lieu de mettre mon lien vers modifier.php, je dois mettre:
Code :
1
2
3
4
5
<form class="identite" method="post" action="modifier.php">
 
<input type="hidden" name="id" value="$donnees['id']" />
 
<input type="submit" value="Modifier" />
Puis, dans la page modifier.php, j ai juste a mettre un nouveau formulaire du type:
Code :
1
2
3
4
5
<form class="identite" method="post" action="enregistrement.php">
<input type="hidden" name="id" value="$donnees['id']" />
<input type="text" name="avis direction"  />
 
<input type="submit" value="enregistrer" />
et enfin la page enregistrement.php ou je met la commande UPDATE ?
x5452 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 21h13   #6
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Ton formulaire, tu l'écris à l'intérieur de ta boucle while
Et comme l'a dit Sabotage, tu ajoute un champ de type hidden qui indiquera l'id
Code :
1
2
3
4
5
<form action = "modifier.php" method = "post">
<input type= "hidden" name = "id" value = "<?php echo $donnees['id'];?>" />
// éventuellement d'autres champs à récupérer
<input type = "submit" value = "modifier" />
</form>
Pour des raisons de sécurité il est préférable de choisir cette méthode plutôt que de passer l'id directement dans un lien.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 21h14   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il te manque les </form> mais oui.

Comme je t'ai dit, pour le premier, tu peux garder un lien
Code :
echo '<a href="modifier.php?id=' . $donnees['id'] . '"'>
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 21h18   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Oui j'avais pas vu ta réponse, mais à y repenser, pourquoi ne pas faire directement deux boutons, un pour accepter et un pour refuser. Cela t'éviterait une page intermédiaire.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 21h50   #9
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Pour étayer un peu ma réponse précédente, il faut savoir que dans un formulaire avec plusieurs submit, seul celui sur lequel on a cliqué renvoie sa valeur
Code :
1
2
3
4
5
6
<?php print_r($_POST); ?>
<form action = "#" method = "post" >
<input type = "hidden" name = "id" value = "toto" />
<input name="accepter" type = "submit" value="accepter" />
<input name="refuser" type = "submit" value="refuser" />
</form>
Donc il te serait facile dans une même page de faire le traitement approprié suivant le submit que tu recevras dans le post.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 22h31   #10
Invité de passage
 
Inscription : janvier 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 4
Points : 0
Points : 0
Merci pour votre reponse abciweb, c est vrai que votre derniere solution me parait pas mal...

Je vais voir ce que je peux faire avec.

Si a la place de "toto" dans ton exemple pour id je mets value = "$donnees['id']" est ce que cela me permettra de modifier l entree seulement pour la ligne voulu?
x5452 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 22h55   #11
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Oui mais si tu ne fait pas un echo sur toute la ligne de l'input, il faudra faire afficher ta donnée en faisant
Code php :
value="<?php echo $donnees['id'];?>"
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h15.


 
 
 
 
Partenaires

Hébergement Web