HI,
Spalten der Tabelle arbeitstage (hier stehen die vorher eingetragenen Arbeitstage für welche sich die Mitarbeiter eintragen können):
arbeitstag_id
jahr_id
monat_id
tag_id
Inhalt ( - für Spalte):
1 - 1 - 3 - 14
2 - 1 - 3 - 15
3 - 1 - 3 - 16
4 - 1 - 3 - 17
5 - 1 - 3 - 18
6 - 1 - 3 - 19
Spalten der Tabelle mverf (hier wird abgelegt wann ein Mitarbeiter gerne arbeiten, aber noch nicht fest für diesen Tag und zu einer der beiden Schichten [ Früh (schichtart_id=1) und Spätschicht (schichtart_id=2)] eingeteilt ist):
persnr
arbeitstag_id
schichtart_id
Inhalt:
217 - 2 - 1
217 - 4 - 1
Für den ausgewählten Mitarbeiter (Variable $persnr) soll nun an den Tagen ein checked bei der Checkbox gesetzt werden, wo der Mitarbeiter sich schon eingetragen hat, damit man keine "Wunschzeiten" verliert bzw doppelt plant.
Nun zeigt er mir zwar die Tage an, an welchen der Mitarbeiter laut Tabelle mverf bereits geplant ist, aber alle weiteren möglichen Arbeitstage werden dem Mitarbeiter nicht mehr angezeigt. Er kann sich dann also an den Tagen auch nicht mehr eintragen.
Danke, habs wirklich lange versucht, komme aber gerade nicht dahinter wo der Fehler in meiner Abfrage steckt.
Edit:
"Wo ich hin möchte" :
Es gibt eine Seite, man wählt einen Mitarbeiter aus, dann ein Jahr und dann einen Monat. Dann sollen alle Arbeitstage angezeigt werden, welche in der Tabelle arbeitstage mit dieser Jahr_Id und mit dieser Monats_id hinterlegt sind. An diesen Arbeitstagen kann sich der Mitarbeiter mittels einer Checkbox an jedem Arbeitstag eintragen und dann per Button an die Datenbank senden und diese werden dann in die Tabelle mverf eingetragen. Nur falls der Mitarbeiter seine Zeiten für den Monat schon einmal eingetragen hat, er also zb. einen weiteren Tag für sich einplanen will und er auf die Seite geht, sollen ja die Checkboxen von den schon ausgewählten Tagen bereits angeharkt sein (Eben das "checked" bei der entsprechenden Checkbox).
Also kurzfassung, die Kreuzchen die der Mitarbeiter bereits für Arbeitstage gemacht sollen ihm angezeigt werden, falls der Mitarbeiter noch einmal auf die Seite "Wunscharbeitszeiten eintragen" geht.
Der Fehler ist nun mit meiner Abfrage, dass er nurnoch die Tage anzeigt, an welchen der Mitarbeiter eingetragen ist. Er kann sich also garnicht mehr für die anderen Tage eintragen.
Ich hoffe man kann verstehen was ich meine
HIer die Abfrage und Anzeige für die Frühschicht
[img][/img]
Spalten der Tabelle arbeitstage (hier stehen die vorher eingetragenen Arbeitstage für welche sich die Mitarbeiter eintragen können):
arbeitstag_id
jahr_id
monat_id
tag_id
Inhalt ( - für Spalte):
1 - 1 - 3 - 14
2 - 1 - 3 - 15
3 - 1 - 3 - 16
4 - 1 - 3 - 17
5 - 1 - 3 - 18
6 - 1 - 3 - 19
Spalten der Tabelle mverf (hier wird abgelegt wann ein Mitarbeiter gerne arbeiten, aber noch nicht fest für diesen Tag und zu einer der beiden Schichten [ Früh (schichtart_id=1) und Spätschicht (schichtart_id=2)] eingeteilt ist):
persnr
arbeitstag_id
schichtart_id
Inhalt:
217 - 2 - 1
217 - 4 - 1
Für den ausgewählten Mitarbeiter (Variable $persnr) soll nun an den Tagen ein checked bei der Checkbox gesetzt werden, wo der Mitarbeiter sich schon eingetragen hat, damit man keine "Wunschzeiten" verliert bzw doppelt plant.
Nun zeigt er mir zwar die Tage an, an welchen der Mitarbeiter laut Tabelle mverf bereits geplant ist, aber alle weiteren möglichen Arbeitstage werden dem Mitarbeiter nicht mehr angezeigt. Er kann sich dann also an den Tagen auch nicht mehr eintragen.
Danke, habs wirklich lange versucht, komme aber gerade nicht dahinter wo der Fehler in meiner Abfrage steckt.
Edit:
"Wo ich hin möchte" :
Es gibt eine Seite, man wählt einen Mitarbeiter aus, dann ein Jahr und dann einen Monat. Dann sollen alle Arbeitstage angezeigt werden, welche in der Tabelle arbeitstage mit dieser Jahr_Id und mit dieser Monats_id hinterlegt sind. An diesen Arbeitstagen kann sich der Mitarbeiter mittels einer Checkbox an jedem Arbeitstag eintragen und dann per Button an die Datenbank senden und diese werden dann in die Tabelle mverf eingetragen. Nur falls der Mitarbeiter seine Zeiten für den Monat schon einmal eingetragen hat, er also zb. einen weiteren Tag für sich einplanen will und er auf die Seite geht, sollen ja die Checkboxen von den schon ausgewählten Tagen bereits angeharkt sein (Eben das "checked" bei der entsprechenden Checkbox).
Also kurzfassung, die Kreuzchen die der Mitarbeiter bereits für Arbeitstage gemacht sollen ihm angezeigt werden, falls der Mitarbeiter noch einmal auf die Seite "Wunscharbeitszeiten eintragen" geht.
Der Fehler ist nun mit meiner Abfrage, dass er nurnoch die Tage anzeigt, an welchen der Mitarbeiter eingetragen ist. Er kann sich also garnicht mehr für die anderen Tage eintragen.
Ich hoffe man kann verstehen was ich meine
HIer die Abfrage und Anzeige für die Frühschicht
PHP-Code:
<table border=0>
<tr>
<td> <h3>Frühschicht</h3>
</td>
</tr>
</table>
<table border=1>
<?php
$result=mysql_query("SELECT distinct tag_id as tag,tag_id, if (mverf.arbeitstag_id is NULL, '', ' checked')sel FROM arbeitstage left join mverf on arbeitstage.arbeitstag_id=mverf.arbeitstag_id where arbeitstage.jahr_id='1' and arbeitstage.monat_id='3' and mverf.schichtart_id='1' and mverf.persnr='217' order by tag;");
while ($row = mysql_fetch_array($result))
{
$tagef .= "<tr><td>".$row["tag"]."</td><td><input type='checkbox' name='verff[]' value=".$row["tag_id"]." ".$row["sel"]."></td></tr>";
}
echo $tagef;
?>
</table>
Kommentar