Bonjour,
J'ai déja posté à ce sujet mais je n'ai toujours pas de solution.
J'ai un premier formulaire qui me donne une liste d'employés dans une structure (table Employe). Ceux qui travaillent sur une machine donnée sont cochés.
Quand l'utilisateur clique sur le bouton 'modifier' , j'aimerai modifier la liste d'employés affectée à une machine, soit la liste de la table EmployeMachine.
Pour cela je fais deux requêtes :
1. Delete des lignes de la table EmployeMachine correspondantes à la machine donnée
2. Insert des lignes constituées du nom_machine et de l'id_employe dans la table EmployeMachine. les id_employe viennent du choix utilisateur, soit des cases qu'il a coché dans le formulaire initial.
La requete de delete fonctionne bien mais la requête d'insertion ne fonctionne pas. Il me dit qu'une contrainte m'empeche de la faire. Quand je fais ces requetes séparément avec MySQL, cela fonctionne bien. J'ai donc un souci dans ma boucle d'insertion.
Est-ce que quelqu'un pourrait m'aider. J'en serais très heureuse.
Paulinett'
Voici mon code :
formulaire_modif_employemachine.php
<html>
<head>
<title> Formulaire de modification des employés d'une machine </title>
<link rel=stylesheet href='film3.css' type='text/css'>
</head>
<body>
<h1> Formulaire de Modification des employés de la machine </h1>
<form action="modif_employemachine.php" method=post>
<!--------------------------------------->
<!-- RECUPERATION DU NOM DE LA MACHINE -->
<!--------------------------------------->
<?php
$nom_machine =$_POST['nom_machine'];
?>
<h2> Tous les employes disponibles </h2>
<h3> Les employes de votre machine <font COLOR=red><?php echo $nom_machine ; ?></font> sont cochés </h3>
<?php
// Appel le fichier connect.php
require_once("Connect.php");
// Connexion au serveur et accès à la base
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);
// déclaration de l'entête du tableau
echo "<center><table border=4 cellspacing=2 cellpadding=2>"
."<tr><th>ID<th>Nom<th>Prénom<th>Fonction<th>Téléphone<th>Email<th>Check</tr>\n";
// déclaration d'un tableau pour les employés d'une machine
$tabEmployesMachine=array();
// Requête donnant les employés d'une machine
$employes_machine=mysql_query("SELECT EmployeMachine.nom_machine, EmployeMachine.id_employe FROM EmployeMachine WHERE EmployeMachine.nom_machine LIKE '%$nom_machine%'",$connexion);
// Stockage des employés d'une machine dans un tableau
while ($ligne = mysql_fetch_array($employes_machine, MYSQL_NUM))
{
array_push($tabEmployesMachine,$ligne[1]);
}
// Requête sélectionnant tous les employés
$employes_tous=mysql_query("SELECT * FROM Employe",$connexion);
// Boucle permettant de parcouri la liste des employés et d'affecter à chaque employé un check s'il est associé à la machine en question
while ($tous_employes=mysql_fetch_object($employes_tous))
{
$check='';
if (in_array($tous_employes->id_employe,$tabEmployesMachine))
{
$check=' checked="checked"';
}
// écriture du tableau
echo '<tr><td>'.$tous_employes->id_employe.'</td><td>'
.$tous_employes->nom_employe.'</td><td>'
.$tous_employes->prenom_employe.'</td><td>'
.$tous_employes->fonction_employe.'</td><td>'
.$tous_employes->tel_employe.'</td><td>'
.$tous_employes->email_employe.'</td><td>'
.'<input type=checkbox name="employes[]" value="'.$tous_employes->id_employe.'"'.$check.' /></td></tr>';
}
echo "</table></center>\n";
?>
<!-- champ caché avec le nom de la machine pour le récupérer pour l'update des employes -->
<input type=hidden name="nom_machine" value=<?php echo $nom_machine;?>>
<center><h3>Confirmez-vous ces nouveaux employés ?</h3></center>
<center><input type=submit value='Modifier' name='modifier'></center>
</form>
</body>
</html>
modif_employemachine.php
<html>
<head>
<title> Formulaire de modification des employés d'une machine </title>
<link rel=stylesheet href='film3.css' type='text/css'>
</head>
<body>
<h1> Formulaire de Modification des employés de la machine </h1>
<form action="modif_employemachine.php" method=post>
<!--------------------------------------->
<!-- RECUPERATION DU NOM DE LA MACHINE -->
<!--------------------------------------->
<?php
$nom_machine =$_POST['nom_machine'];
?>
<h2> Tous les employes disponibles </h2>
<h3> Les employes de votre machine <font COLOR=red><?php echo $nom_machine ; ?></font> sont cochés </h3>
<?php
// Appel le fichier connect.php
require_once("Connect.php");
// Connexion au serveur et accès à la base
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE, $connexion);
// déclaration de l'entête du tableau
echo "<center><table border=4 cellspacing=2 cellpadding=2>"
."<tr><th>ID<th>Nom<th>Prénom<th>Fonction<th>Téléphone<th>Email<th>Check</tr>\n";
// déclaration d'un tableau pour les employés d'une machine
$tabEmployesMachine=array();
// Requête donnant les employés d'une machine
$employes_machine=mysql_query("SELECT EmployeMachine.nom_machine, EmployeMachine.id_employe FROM EmployeMachine WHERE EmployeMachine.nom_machine LIKE '%$nom_machine%'",$connexion);
// Stockage des employés d'une machine dans un tableau
while ($ligne = mysql_fetch_array($employes_machine, MYSQL_NUM))
{
array_push($tabEmployesMachine,$ligne[1]);
}
// Requête sélectionnant tous les employés
$employes_tous=mysql_query("SELECT * FROM Employe",$connexion);
// Boucle permettant de parcouri la liste des employés et d'affecter à chaque employé un check s'il est associé à la machine en question
while ($tous_employes=mysql_fetch_object($employes_tous))
{
$check='';
if (in_array($tous_employes->id_employe,$tabEmployesMachine))
{
$check=' checked="checked"';
}
// écriture du tableau
echo '<tr><td>'.$tous_employes->id_employe.'</td><td>'
.$tous_employes->nom_employe.'</td><td>'
.$tous_employes->prenom_employe.'</td><td>'
.$tous_employes->fonction_employe.'</td><td>'
.$tous_employes->tel_employe.'</td><td>'
.$tous_employes->email_employe.'</td><td>'
.'<input type=checkbox name="employes[]" value="'.$tous_employes->id_employe.'"'.$check.' /></td></tr>';
}
echo "</table></center>\n";
?>
<!-- champ caché avec le nom de la machine pour le récupérer pour l'update des employes -->
<input type=hidden name="nom_machine" value=<?php echo $nom_machine;?>>
<center><h3>Confirmez-vous ces nouveaux employés ?</h3></center>
<center><input type=submit value='Modifier' name='modifier'></center>
</form>
</body>
</html>