par
larsvangeil » 16 août 2012, 10:15
Bonjour à tous et à toutes,
Nouveau sur le forum, je viens vous solliciter sur un problème que je rencontre actuellement. Je suis en stage dans une entreprise et je dois faire un planning dynamique pour organiser les emplois du temps des salariés selon des conditions bien spécifiques.
Voilà le principe de fonctionnement
imaginons que j'ai 5 postes à pourvoir dans une même tranche horaire et que j'ai 10 agents
1er poste, je sélectionne l'agent 5
au 2nd poste, l'agent 5 n'est plus disponible et je retire l'agent 8
au 3ème poste, l'agent 5 & 8 ne sont plus dispos, etc...
les deux premiers postes fonctionnent bien mais dès qu'il s'agit de cumuler, ça bloque et je ne vois pas trop pourquoi (je suis relativement néophyte dans le domaine, il y a peut être des subtilités qui m'échappent encore)
Egalement, je souhaite afficher en dessous le nom et prénom de la personne sélectionnée pour être sur que le DRH soit sûr de son choix, toutefois, si ça marche lors de la première sélection, lors de la deuxième, le nom de la première sélection disparaît et c'est le second qui apparaît.
Voilà si vous avez des solutions ou des astuces je suis preneur, je vous remercie par avance
<form method="POST" action="" target="" >
<select name="agent">
<?
mysql_connect("localhost",USER,PASS);
mysql_select_db(BASE);
$inscription='SELECT id_agent,nom,prenom FROM agents
JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
JOIN autoriser on autoriser.id_agent_=agents.id_agent
JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
WHERE "2012-09-03" NOT BETWEEN congesdeb AND congesfin
AND dateindispo NOT LIKE "2012-09-03"
AND debutindispo NOT LIKE "12:00:00"
AND finindispo NOT LIKE "13:00:00"
AND id_poste_=6
AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
GROUP BY nom ASC';
$id=mysql_query($inscription);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
$i++;
}
?>
</select>
<input type="submit" value="Valider" />
</form>
<?
// ici pour afficher la sélection du menu mais celle ci disparaît dès qu'on valide la sélection dans le deuxième menu
if(isset($_POST['agent'])){
$agent=mysql_real_escape_string($_POST['agent']);
$affiche='SELECT nom,prenom FROM agents WHERE id_agent="'.$agent.'"';
$id=mysql_query($affiche);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo $resultat[0].' - '.$resultat[1];
}
}
?>
<form method="POST" action="" target="" >
<select name="agent1>
<?
if (isset($_POST['agent'])){
$agent=mysql_real_escape_string($_POST['agent']);
$pret1='SELECT id_agent,nom,prenom FROM agents
JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
JOIN autoriser on autoriser.id_agent_=agents.id_agent
JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
WHERE "2012-09-03" NOT BETWEEN congesdeb AND congesfin
AND dateindispo NOT LIKE "2012-09-03"
AND debutindispo NOT LIKE "12:00:00"
AND finindispo NOT LIKE "13:00:00"
AND id_poste_=7
AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
AND id_agent NOT LIKE "'.$agent.'"
GROUP BY nom ASC';
$id=mysql_query($pret1);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
$i++;
}
}
?>
</select>
<input type="submit" value="Valider" />
</form>
<?
// même résultat que le premier affichage
if(isset($_POST['agent1])){
$agent1=mysql_real_escape_string($_POST['agent1');
$affiche='SELECT nom,prenom FROM agents WHERE id_agent="'.$agent1.'"';
$id=mysql_query($affiche);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo $resultat[0].' - '.$resultat[1];
}
}
?>
<form method="POST" action="" target="" >
<select name="agent2>
<?
if (isset($_POST['agent']) & isset($_POST['agent1'])){
$agent=mysql_real_escape_string($_POST['agent']);
$agent1=mysql_real_escape_string($_POST['agent1']);
$totale='SELECT id_agent,nom,prenom FROM agents
JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
JOIN autoriser on autoriser.id_agent_=agents.id_agent
JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
WHERE "2012-09-03" NOT BETWEEN congesdeb AND congesfin
AND dateindispo NOT LIKE "2012-09-03"
AND debutindispo NOT LIKE "12:00:00"
AND finindispo NOT LIKE "13:00:00"
AND id_poste_=7
AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
AND id_agent NOT IN ("'.$agent.'","'.$agent1.'")
GROUP BY nom ASC';
$id=mysql_query($totale);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
$i++;
}
}
?>
</select>
<input type="submit" value="Valider" />
</form>
Bonjour à tous et à toutes,
Nouveau sur le forum, je viens vous solliciter sur un problème que je rencontre actuellement. Je suis en stage dans une entreprise et je dois faire un planning dynamique pour organiser les emplois du temps des salariés selon des conditions bien spécifiques.
Voilà le principe de fonctionnement
imaginons que j'ai 5 postes à pourvoir dans une même tranche horaire et que j'ai 10 agents
1er poste, je sélectionne l'agent 5
au 2nd poste, l'agent 5 n'est plus disponible et je retire l'agent 8
au 3ème poste, l'agent 5 & 8 ne sont plus dispos, etc...
les deux premiers postes fonctionnent bien mais dès qu'il s'agit de cumuler, ça bloque et je ne vois pas trop pourquoi (je suis relativement néophyte dans le domaine, il y a peut être des subtilités qui m'échappent encore)
Egalement, je souhaite afficher en dessous le nom et prénom de la personne sélectionnée pour être sur que le DRH soit sûr de son choix, toutefois, si ça marche lors de la première sélection, lors de la deuxième, le nom de la première sélection disparaît et c'est le second qui apparaît.
Voilà si vous avez des solutions ou des astuces je suis preneur, je vous remercie par avance
[php]
<form method="POST" action="" target="" >
<select name="agent">
<?
mysql_connect("localhost",USER,PASS);
mysql_select_db(BASE);
$inscription='SELECT id_agent,nom,prenom FROM agents
JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
JOIN autoriser on autoriser.id_agent_=agents.id_agent
JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
WHERE "2012-09-03" NOT BETWEEN congesdeb AND congesfin
AND dateindispo NOT LIKE "2012-09-03"
AND debutindispo NOT LIKE "12:00:00"
AND finindispo NOT LIKE "13:00:00"
AND id_poste_=6
AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
GROUP BY nom ASC';
$id=mysql_query($inscription);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
$i++;
}
?>
</select>
<input type="submit" value="Valider" />
</form>
<?
// ici pour afficher la sélection du menu mais celle ci disparaît dès qu'on valide la sélection dans le deuxième menu
if(isset($_POST['agent'])){
$agent=mysql_real_escape_string($_POST['agent']);
$affiche='SELECT nom,prenom FROM agents WHERE id_agent="'.$agent.'"';
$id=mysql_query($affiche);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo $resultat[0].' - '.$resultat[1];
}
}
?>
<form method="POST" action="" target="" >
<select name="agent1>
<?
if (isset($_POST['agent'])){
$agent=mysql_real_escape_string($_POST['agent']);
$pret1='SELECT id_agent,nom,prenom FROM agents
JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
JOIN autoriser on autoriser.id_agent_=agents.id_agent
JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
WHERE "2012-09-03" NOT BETWEEN congesdeb AND congesfin
AND dateindispo NOT LIKE "2012-09-03"
AND debutindispo NOT LIKE "12:00:00"
AND finindispo NOT LIKE "13:00:00"
AND id_poste_=7
AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
AND id_agent NOT LIKE "'.$agent.'"
GROUP BY nom ASC';
$id=mysql_query($pret1);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
$i++;
}
}
?>
</select>
<input type="submit" value="Valider" />
</form>
<?
// même résultat que le premier affichage
if(isset($_POST['agent1])){
$agent1=mysql_real_escape_string($_POST['agent1');
$affiche='SELECT nom,prenom FROM agents WHERE id_agent="'.$agent1.'"';
$id=mysql_query($affiche);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo $resultat[0].' - '.$resultat[1];
}
}
?>
<form method="POST" action="" target="" >
<select name="agent2>
<?
if (isset($_POST['agent']) & isset($_POST['agent1'])){
$agent=mysql_real_escape_string($_POST['agent']);
$agent1=mysql_real_escape_string($_POST['agent1']);
$totale='SELECT id_agent,nom,prenom FROM agents
JOIN indisponibilites on indisponibilites.id_agent_=agents.id_agent
JOIN autoriser on autoriser.id_agent_=agents.id_agent
JOIN amplitudes on amplitudes.id_agent_=agents.id_agent
WHERE "2012-09-03" NOT BETWEEN congesdeb AND congesfin
AND dateindispo NOT LIKE "2012-09-03"
AND debutindispo NOT LIKE "12:00:00"
AND finindispo NOT LIKE "13:00:00"
AND id_poste_=7
AND lunamdeb BETWEEN "12:00:00" AND "13:00:00"
AND id_agent NOT IN ("'.$agent.'","'.$agent1.'")
GROUP BY nom ASC';
$id=mysql_query($totale);
$i=0;
while($resultat=mysql_fetch_row($id))
{
echo '<option value="'/.$resultat[0].'">'.$resultat[1].' - '.$resultat[2].'</option>
$i++;
}
}
?>
</select>
<input type="submit" value="Valider" />
</form>
[/php]