Probleme Tableau PHP HTML

Résolu/Fermé
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008 - 15 mai 2008 à 11:37
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008 - 15 mai 2008 à 15:15
Bonjour,

J'ai une page php qui me permet d'afficher les salariés présents dans une base de donnée.
Mon soucis est que je voudrais mettre à gauche 2 icônes, l'une pour modifier un salarié(donc modification dans la BDD) et l'autre pour supprimer le salarié(donc suppression dans la BDD).
Voila ce que j'ai fait, mais je voudrais en fait que lorsque je clique sur l'une des deux icônes elle prenne bien en compte le salarié concerné et je ne sais pas comment faire.
Merci d'avance.

Voici le code:

<HTML>
<HEAD>
<TITLE>Liste des Salariés</TITLE>
<STYLE type="text/css">
BODY
{
color:black; font-family:Tahoma;
}
.menu
{
color:black; font-size:11pt; text-align:center; font-family:Tahoma; font-weight:bold
}
</STYLE>
</HEAD>
<BODY BGCOLOR="#BAD4FC">
<IMG SRC="http://127.0.0.1/ASM/LogoASM2.jpeg"><BR /><BR />
<CENTER><B><FONT SIZE=3>LISTE DES SALARIES PRESENTS</FONT></B></CENTER><BR />
<TABLE width="100%" bgcolor="#BAD4FC" cellpadding="5" cellspacing="2" border="2" bordercolor="#DDDDDD">
<tr>
<td width="25%">
<span class="menu"><a href="http://127.0.0.1/ASM/login.php"><center>Acceuil</center></a></span></td>
<td width="25%">
<span class="menu"><a href="http://127.0.0.1/ASM/affichage_salarie.php"><center>Gestion des Salariés</center></a></span></td>
<td width="25%">
<span class="menu"><center>Planning</center></a></span></td>
<td width="25%">
<span class="menu"><center>Tableaux de résultats</center></span></td>
</tr>
</TABLE><BR /><BR />
<DIV style="BORDER-RIGHT: hidden 1px inset; BORDER-TOP: hidden 1px inset; OVERFLOW-Y: scroll; OVERFLOW-X: hidden; BORDER-LEFT: hidden 1px inset; WIDTH: 100%; BORDER-BOTTOM: hidden 1px inset; HEIGHT: 750px; background-color: #BAD4FC; scrollbar-face-color: #336699; scrollbar-shadow-color: #9CE5FD; scrollbar-highlight-color: #336699; scrollbar-3dlight-color: #9CE5FD; scrollbar-darkshadow-color: #9CE5FD; scrollbar-track-color: #336699; scrollbar-arrow-color: #9CE5FD;">
<p>
<TABLE width="100%" bgcolor="#BAD4FC" cellpadding="5" cellspacing="2" border="2" bordercolor="#DDDDDD">
<tr>
<td width="1%"><B><FONT SIZE=2><CENTER>Modifier</CENTER></FONT></B></td>
<td width="1%"><B><FONT SIZE=2><CENTER>Supprimer</CENTER></FONT></B></td>
<td width="1%"><B><FONT SIZE=2><CENTER>Civilité</CENTER></FONT></B></td>
<td width="6%"><B><FONT SIZE=2><CENTER>Nom</CENTER></FONT></B></td>
<td width="6%"><B><FONT SIZE=2><CENTER>Prénom</CENTER></FONT></B></td>
<td width="4%"><B><FONT SIZE=2><CENTER>Date de Naissance</CENTER></FONT></B></td>
<td width="10%"><B><FONT SIZE=2><CENTER>Adresse</CENTER></FONT></B></td>
<td width="3%"><B><FONT SIZE=2><CENTER>Code Postal</CENTER></FONT></B></td>
<td width="5%"><B><FONT SIZE=2><CENTER>Ville</CENTER></FONT></B></td>
<td width="5%"><B><FONT SIZE=2><CENTER>Téléphone Fixe</CENTER></FONT></B></td>
<td width="5%"><B><FONT SIZE=2><CENTER>Téléphone Portable</CENTER></FONT></B></td>
<td width="3%"><B><FONT SIZE=2><CENTER>Nature du Contrat</CENTER></FONT></B></td>
<td width="2%"><B><FONT SIZE=2><CENTER>Date d'Entrée</CENTER></FONT></B></td>
<td width="2%"><B><FONT SIZE=2><CENTER>Date de Sortie</CENTER></FONT></B></td>
</tr>


<?
mysql_connect("localhost", "root") or die ("Impossible de se connecter à la base");
mysql_select_db("asm") or die ("Impossible de se connecter à la base");
$Resultat = mysql_query("SELECT * FROM salarie, contrat, nature_contrat
where salarie.ID_Salarie = contrat.ID_Salarie
and contrat.ID_Nature_Contrat = nature_contrat.ID_Nature_Contrat;");

$NombreEnregistrement = mysql_numrows($Resultat);

mysql_close();

for ($Compteur = 0 ; $Compteur < $NombreEnregistrement ; $Compteur ++)
{
echo "<TR>";
//COLONNE : MODIFIER
echo "<TD>";
echo "<a href=http://127.0.0.1/ASM/modification_salarie.php >";
echo "<CENTER><IMG SRC='http://127.0.0.1/ASM/modifier.png' title='modifier'></CENTER></a>";
echo "</TD>";
//COLONNE : SUPPRIMER
echo "<TD>";
echo "<a href=http://127.0.0.1/ASM/suppression_salarie.php>";
echo "<CENTER><IMG SRC='http://127.0.0.1/ASM/supprimer.png' title='supprimer'></CENTER></a>";
echo "</TD>";
// PREMIERE COLONNE : civilite
echo "<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Civilite_Salarie");
echo "</FONT>";
echo "</TD>";
// DEUXIEME COLONNE : nom
echo "<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Nom_Salarie");
echo "</FONT>";
echo "</TD>";
// TROISIEME COLONNE : prenom
echo "<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Prenom_Salarie");
echo "</FONT>";
echo "</TD>";
//QAUTRIEME COLONNE : date de naissance
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Date_Naissance_Salarie");
echo "</FONT>";
echo"</TD>";
//CINQUIEME COLONNE : adresse
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Adresse_Salarie");
echo "</FONT>";
echo"</TD>";
//SIXIEME COLONE : code postal
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Code_Postal_Salarie");
echo "</FONT>";
echo"</TD>";
//SEPTIEME COLONE : ville
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Ville_Salarie");
echo"</TD>";
//HUITIEME COLONE : telephone fixe
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Telephone_Fixe_Salarie");
echo "</FONT>";
echo"</TD>";
//NEUVIEME COLONE : telephone portable
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Telephone_Portable_Salarie");
echo "</FONT>";
echo"</TD>";
//DIXIEME COLONE : nature du contrat
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Libelle_Nature_Contrat");
echo "</FONT>";
echo"</TD>";
//ONZIEME COLONE : date d'entrée
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Date_Entree_Salarie");
echo "</FONT>";
echo"</TD>";
//DOUZIEME COLONE : date de sortie
echo"<TD>";
echo "<FONT SIZE=2>";
echo mysql_result($Resultat , $Compteur , "Date_Sortie_Salarie");
echo "</FONT>";
echo"</TD>";
echo "</TR>";
}
?>
</TABLE><BR /><BR />
</p>
</DIV>

<TABLE align="center"; width="80"; bgcolor="#BAD4FC"; cellpadding="5"; cellspacing="24";>
<tr>
<td width="20%"><B><a href="http://127.0.0.1/ASM/formulaire_salarie.html">AJOUTER</a></td>
<td width="20%"><B><a href="">IMPRIMER</a></td>
</tr>
</TABLE>

</BODY>
</HTML>
A voir également:

6 réponses

PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
15 mai 2008 à 11:45
Bjr

Un truc tout bête ... ;-)

Passe l'identifiant du salarié en tant que paramètre

exe
$ID_Salarie = mysql_result($Resultat , $Compteur , "ID_Salarie");

echo "<a href=http://127.0.0.1/ASM/modification_salarie.php?ID_salarie=".$ID_Salarie.">";
...
echo "<a href=http://127.0.0.1/ASM/suppression_salarie.php?ID_salarie=".$ID_Salarie.">";


Ensuite tu récupères ID_salarie dans tes pages modification_salarie.php & suppression_salarie.php

Ex
<?php

if (isset($_GET["ID_Salarie"]))
{
  $ID_Salarie = $_GET["ID_Salarie"];
}
else
{
  // Oups pas de salarié : ici gestion des erreurs !
}

?>


0
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008
15 mai 2008 à 11:56
Alors j'ai compris ce que tu voulais dire, j'ai juste une question bête pour être sure. Quand tu veux mettre l'ID_Salarie en paramètre tu mets ou la ligne $ID_Salarie = mysql_result($Resultat , $Compteur , "ID_Salarie"); dans le tableau au niveau de "modifier" et "supprimer", faut-il que je fasse un echo car je ne veux pas l'afficher l'ID_Salarie.
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
15 mai 2008 à 12:00
Dans la boucle for :

for ($Compteur = 0 ; $Compteur < $NombreEnregistrement ; $Compteur ++) 
{ 
$ID_Salarie = mysql_result($Resultat , $Compteur , "ID_Salarie"); 







j'utilise $ID_Salarie comme variable temporaire juste pour pas avoir à réécrire tout le temps mysql_result($Resultat , $Compteur , "ID_Salarie")


Bien sûr tu peux aussi écrire

echo "<a href=http://127.0.0.1/ASM/modification_salarie.php?ID_salarie=".mysql_result($Resultat , $Compteur , "ID_Salarie".">­"; 


au lieu de

echo "<a href=http://127.0.0.1/ASM/modification_salarie.php?ID_salarie=".$ID_Salarie.">­"; 

0
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008
15 mai 2008 à 12:15
OK c'est bon ça fonctionne, juste une dernière question dans mes pages suppression.php et modification.php les requêtes de suppression et de modification je les mets comme ça:

if (isset($_GET["ID_Salarie"]))
{
$ID_Salarie = $_GET["ID_Salarie"];

mysql_connect("localhost","root") or die ("Impossible de se connecter à la base de données.");
mysql_select_db("asm") or die("Impossible de se connecter à la base de données.");
$resultat = mysql_query("DELETE FROM salarie
WHERE ID_Salarie LIKE '$ID_Salarie'");
}
else
{
echo '<CENTER><B>Le salarié n\'existe pas!</B></CENTER>';
}
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
15 mai 2008 à 12:21
Oui ça paraît correct sans pour le LIKE c'est "dangereux" surtout en suppression bien que j'ai horreur d'utiliser la fonction de substitution de variables de PHP et que je préfère écrire


$resultat = mysql_query("DELETE FROM salarie
WHERE ID_Salarie = '".$ID_Salarie."'");

au moins là on distingue bien la variable
plutôt que

$resultat = mysql_query("DELETE FROM salarie
WHERE ID_Salarie = '$ID_Salarie'");

Mais c'est affaire de goût
0
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008
15 mai 2008 à 12:33
C'est plutôt bizarre ma requête ne fonctionne pas après avoir cliquer sur supprimer il m'affiche le salarié à bien été supprimé mais il ne se passe rien dans ma base je ne devrais pas faire un form avec method="get" dans mes pages suppression et modification?
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
15 mai 2008 à 12:55
Ta page de départ (celle avec le tableau ne comporte pas de formulaire donc le problème ne provient pas de là)

Dans ta page suppression_salarie.php

ajoute avant

 if (isset($_GET["ID_Salarie"])) 
{ 
$ID_Salarie = $_GET["ID_Salarie"]; 


le code

<?php

echo "Contenu de $_GET[]<br />";
echo "<pre>";
var_dump($_GET);
echo "</pre>";

?>


Ca va t'afficher toutes les variables contenu dans $_GET[]
Pratique pour débugger
0
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008
15 mai 2008 à 13:38
J'ai donc ecrit ça:

echo "Contenu de $_GET[ID_Salarie]<br />";
echo "<pre>";
var_dump($_GET["ID_Salarie"]);
echo "</pre>";

et j'ai comme affichage:

Contenu de 1

string(1) "1"

Je ne vois rien d'anormal car le salarié que j'ai tenté de supprimé a pour ID_Salarie 1.
Merci de m'éclairer encore une fois.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
15 mai 2008 à 13:41
Poste le code complet de ta page suppression_salarie.php
0
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008
15 mai 2008 à 13:45
<HTML>
<HEAD>
<TITLE>Suppression d'un Salarié</TITLE>
<STYLE type="text/css">
BODY
{
color:black; font-family:Tahoma;
}
.menu
{
color:black; font-size:11pt; text-align:center; font-family:Tahoma; font-weight:bold
}
</STYLE>
</HEAD>
<BODY BGCOLOR="#BAD4FC">
<IMG SRC="http://127.0.0.1/ASM/LogoASM2.jpeg"><BR /><BR />
<CENTER><B><FONT SIZE=3>SUPPRESSION D'UN SALARIE</FONT></B></CENTER><BR />
<TABLE width="100%" bgcolor="#BAD4FC" cellpadding="5" cellspacing="2" border="2" bordercolor="#DDDDDD">
<tr>
<td width="25%">
<span class="menu"><a href="http://127.0.0.1/ASM/acceuil.html"><center>Acceuil</center></a></span></td>
<td width="25%">
<span class="menu"><a href="http://127.0.0.1/ASM/affichage_salarie.php"><center>Gestion des Salariés</center></a></span></td>
<td width="25%">
<span class="menu"><center>Planning</center></a></span></td>
<td width="25%">
<span class="menu"><center>Tableaux de résultats</center></span></td>
</tr>
</TABLE><BR /><BR />

<?
echo "Contenu de $_GET[ID_Salarie]<br />";
echo "<pre>";
var_dump($_GET);
echo "</pre>";

if (isset($_GET["ID_Salarie"]))
{
$ID_Salarie = $_GET["ID_Salarie"];

mysql_connect("localhost","root") or die ("Impossible de se connecter à la base de données.");
mysql_select_db("asm") or die("Impossible de se connecter à la base de données.");
$resultat = mysql_query("DELETE FROM salarie
WHERE ID_Salarie='".$ID_Salarie."'");
echo '<CENTER><B>Le salarié à été supprimé avec succés.</B></CENTER>';
}
else
{
echo '<CENTER><B>Le salarié n\'existe pas!</B></CENTER>';
}
?>

</BODY>
</HTML>
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
15 mai 2008 à 14:05
Remplace
$resultat = mysql_query("DELETE FROM salarie 
WHERE ID_Salarie='".$ID_Salarie."'"); 


PAR



$resultat = mysql_query("DELETE FROM salarie 
WHERE ID_Salarie='".$ID_Salarie."'"); 
if (!$resultat)
{
  echo "Erreur MySQL n°".mysql_errno()." : ".mysql_error();
}
else
{
  echo "Nombre d'enregistrements supprimés : ".mysql_affected_rows(); 

}


ca doit t'afficher les erreurs MySQL au cas où sinon le nbr de lignes effacées dans ta table
0
BoyDkr81 Messages postés 32 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 7 août 2008
15 mai 2008 à 15:15
J'ai pour affcihage
Erreur MySQL n°1217 : Impossible de supprimer un enregistrement père : une constrainte externe l'empèche

en fait j'ai 5 tables: contrat,salarie,nature_contrat,profil_contrat,type_contrat
Chacune d'entre elles sont reliées c-a-d que dans ma table contrat j'ai comme clés étrangères
ID_Salarie, ID_Nature_Contrat, ID_Profil_Contrat, ID_Type_Contrat que j'ai fait avec phpMyAdmin dans la gestion des relations, toutes ces tables sont en InnoDB.
0