Guten Tag
Ich konnte dank einiger Genies hier mein Zeiterfassungssystem sehr weit bringen. Es war mein Abschlussarbeit letztes Jahr, da es gar nicht mal so schlecht funktionierte, möchte mein Vorgesetzter dieser weiter verbessern, damit es nicht wie ein Amateur-Programm aussieht. Ich muss in 4 Tagen mit diesem fertig werden
Bin aber leider noch eine Anfängerin
Also zu meinem Programm…
_______________________________________________________________
Meine Datenbank-Tabellen:
rapport
- id (10)
- objekt (111)
- mitarbeiter (Schmid)
- jahr (2009)
- monat (01)
- zeit (2)
stundenansatz
- id (20)
- mitarbeiter (Schmid)
- objekt (111)
- stunden (150)
______________________________________________________________
Ich hab durch Hilfe von einige hier zwei verschiedene Ausgaben durch die Dropdownfelder:
1)
Wenn ich im Dropdownfelder irgendein Objekt und Jahr auswähle, werden die Zeiten nach Monat gruppiert ausgegeben. Die Mitarbeiter werden nur angezeigt wenn sie auch Stunden im ausgewählten Objekt und Jahr haben.
------------------------------------------------------------------------------------------------------------
2)
Hier ist der Mitarbeiter schon fest reingeschrieben.
Separat in einer Tabelle wird der Stundenansatz pro Mitarbeiter und Objekt einzeln gespeichert. Die Stunden der Mitarbeiter wird mit Stundenansatz multipliziert.
Wenn neue Mitarbeiter hinzukommen, muss aber manuell das Script verändert werden.
______________________________________________________________
Ich (mein Vorgesetzter) möchte diese beiden Scripts zusammenfügen.
Etwa so:
Mitarbeiter | jan.| feb.| märz | apr. | mai | juni | juli | aug. | sept. | okt. | nov. | dez. | Stundenansatz | Total 1 | Vorjahr | Total 2
- Mitarbeiter = Erscheint nur, wenn er im gewählten Objekt und Jahr "zeit" eingetragen hat
- Stundenansatz = die Stunden aus der Tabelle Stundenansatz, der gewählten Objekt. Erscheint nur wenn der Mitarbeiter auch erscheint
- Total 1 = von jan. bis dez. zusammengezählt multipliziert durch Stundenansatz.
Erscheint wenn Mitarbeiter erscheint
- Vorjahr = Wie Total 1 aber vom Vorjahr (also gewähltes Jahr minus 1)
- Total 2 = Total 1 + Vorjahr
Das alles muss automatisch angezeigt werden wenn ich ein Jahr und ein Objekt im Dropdownfeld auswähle..
Da verschiedene Abfragen zusammenkommen weiss ich nicht ob das überhaupt möglich ist…. Wenn ich das habe, bekomme ich endlich meine Ruhe..
Ich konnte dank einiger Genies hier mein Zeiterfassungssystem sehr weit bringen. Es war mein Abschlussarbeit letztes Jahr, da es gar nicht mal so schlecht funktionierte, möchte mein Vorgesetzter dieser weiter verbessern, damit es nicht wie ein Amateur-Programm aussieht. Ich muss in 4 Tagen mit diesem fertig werden
Bin aber leider noch eine Anfängerin
Also zu meinem Programm…
_______________________________________________________________
Meine Datenbank-Tabellen:
rapport
- id (10)
- objekt (111)
- mitarbeiter (Schmid)
- jahr (2009)
- monat (01)
- zeit (2)
stundenansatz
- id (20)
- mitarbeiter (Schmid)
- objekt (111)
- stunden (150)
______________________________________________________________
Ich hab durch Hilfe von einige hier zwei verschiedene Ausgaben durch die Dropdownfelder:
1)
PHP:
<?
// Erstellt Connect zu Datenbank her
$host = "localhost";
$user = "root";
$pass = "xxx";
$daba = "zeiterfassung";
$db = @mysql_connect($host, $user, $pass) or die ("Konnte keine Verbindung zur Datenbank herstellen");
mysql_select_db($daba, $db);
// zuerst alle Mitarbeiter ermitteln
$sql_mitarbeiter = 'SELECT DISTINCTROW mitarbeiter, objekt FROM rapport WHERE
objekt = "'.mysql_real_escape_string($_POST['objekt']).'"
AND jahr = "'.mysql_real_escape_string($_POST['jahr']).'"
';
$rs_mitarbeiter = mysql_query($sql_mitarbeiter, $db);
?>
<? for ($a = 0; $a <= mysql_num_rows($rs_mitarbeiter) - 1; $a++) { ?>
<tr>
<td><? echo mysql_result($rs_mitarbeiter, $a, "mitarbeiter") ?></td>
<?
$sql_zeit = "SELECT monat, SUM(zeit) AS zeit FROM rapport WHERE
objekt = '".mysql_real_escape_string($_POST['objekt'])."'
AND jahr = '".mysql_real_escape_string($_POST['jahr'])."'
AND
mitarbeiter = '" .mysql_result($rs_mitarbeiter, $a, "mitarbeiter") ."'
GROUP BY monat ORDER BY monat";
$rs_zeit = @mysql_query ($sql_zeit, $db);
unset($zeit);
for ($b = 0; $b<= mysql_num_rows($rs_zeit); $b++) {
$zeit[@mysql_result($rs_zeit, $b, "monat")] = @mysql_result($rs_zeit, $b, "zeit");
}
?>
<td><? echo $zeit[1]; ?></td>
<td><? echo $zeit[2]; ?></td>
<td><? echo $zeit[3]; ?></td>
<td><? echo $zeit[4]; ?></td>
<td><? echo $zeit[5]; ?></td>
<td><? echo $zeit[6]; ?></td>
<td><? echo $zeit[7]; ?></td>
<td><? echo $zeit[8]; ?></td>
<td><? echo $zeit[9]; ?></td>
<td><? echo $zeit[10]; ?></td>
<td><? echo $zeit[11]; ?></td>
<td><? echo $zeit[12]; ?></td>
</tr>
<? } ?>
Wenn ich im Dropdownfelder irgendein Objekt und Jahr auswähle, werden die Zeiten nach Monat gruppiert ausgegeben. Die Mitarbeiter werden nur angezeigt wenn sie auch Stunden im ausgewählten Objekt und Jahr haben.
------------------------------------------------------------------------------------------------------------
2)
PHP:
<?php
include "connect.inc.php";
$sqlab = 'SELECT *,
SUM(rapport.zeit) as zeiten,
stundenansatz.stunden as satzung
FROM
rapport
LEFT JOIN
stundenansatz
ON
rapport.objekt = stundenansatz.objekt
AND
rapport.mitarbeiter = stundenansatz.mitarbeiter
WHERE
stundenansatz.objekt = "'.mysql_real_escape_string($_POST['objekt']).'"
AND rapport.jahr = "'.mysql_real_escape_string($_POST['jahr']).'"
AND stundenansatz.mitarbeiter = "Schmid"
GROUP BY
stundenansatz.mitarbeiter';
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);
$arr = mysql_fetch_array($res);
//echo "<table border align='center'>";
while ($arr)
{
echo '<td align="right">'. $arr['zeiten']*$arr['satzung'] . ' ' . '</td>';
echo '</a>';
$arr = mysql_fetch_array($res);
}
?>
Separat in einer Tabelle wird der Stundenansatz pro Mitarbeiter und Objekt einzeln gespeichert. Die Stunden der Mitarbeiter wird mit Stundenansatz multipliziert.
Wenn neue Mitarbeiter hinzukommen, muss aber manuell das Script verändert werden.
______________________________________________________________
Ich (mein Vorgesetzter) möchte diese beiden Scripts zusammenfügen.
Etwa so:
Mitarbeiter | jan.| feb.| märz | apr. | mai | juni | juli | aug. | sept. | okt. | nov. | dez. | Stundenansatz | Total 1 | Vorjahr | Total 2
- Mitarbeiter = Erscheint nur, wenn er im gewählten Objekt und Jahr "zeit" eingetragen hat
- Stundenansatz = die Stunden aus der Tabelle Stundenansatz, der gewählten Objekt. Erscheint nur wenn der Mitarbeiter auch erscheint
- Total 1 = von jan. bis dez. zusammengezählt multipliziert durch Stundenansatz.
Erscheint wenn Mitarbeiter erscheint
- Vorjahr = Wie Total 1 aber vom Vorjahr (also gewähltes Jahr minus 1)
- Total 2 = Total 1 + Vorjahr
Das alles muss automatisch angezeigt werden wenn ich ein Jahr und ein Objekt im Dropdownfeld auswähle..
Da verschiedene Abfragen zusammenkommen weiss ich nicht ob das überhaupt möglich ist…. Wenn ich das habe, bekomme ich endlich meine Ruhe..
Zuletzt bearbeitet: