Hallo!
ich habe mir zur Verwaltung meiner gearbeiteten Stunden ein kleines Script mit DB-Anbindunggeschrieben, dass diese erfasst. Desweiteren wird diese DB von meinem internen Kundenbereich abgefragt, so dass die Kunden nach Login die Möglichkeit haben, den aktuellen Stand ihres Kundenkontos abzufragen.
Die Daten werden dabei in der DB so gespeichert:
Im Feld "offen" wird markiert, ob der Datensatz schon bezahlt ist, was natürlich monatsweise gesetzt wird.
Nun zum eig Problem:
Um dem Kunden eine Übersicht über die bereits bezahlten Monate mit Monats-Gesamtwert zu geben, verwende ich folgende Abfragen:
Leider erhalte ich dabei folgendes Ergebnis:
Der letzte Datensatz wird doppelt ausgegeben. Ich habe nun schon alles durchprobiert - komme aber zu keinem vernünftigen Ergebnis.
Also habe ich mir mal Abfrage3 ausgeben lassen:
Leider gibt mir das auch keinen entscheidenden Hinweis auf den Fehler.
Ich würde mich super freuen, wenn Ihr mir daher weiterhelfen könnt.
Vielen Dank und eine schöne Woche!
ich habe mir zur Verwaltung meiner gearbeiteten Stunden ein kleines Script mit DB-Anbindunggeschrieben, dass diese erfasst. Desweiteren wird diese DB von meinem internen Kundenbereich abgefragt, so dass die Kunden nach Login die Möglichkeit haben, den aktuellen Stand ihres Kundenkontos abzufragen.
Die Daten werden dabei in der DB so gespeichert:
Code:
id | kunde | jahr | monat | tag | dienstleistung | stunden | satz | sonstiges | offen
Nun zum eig Problem:
Um dem Kunden eine Übersicht über die bereits bezahlten Monate mit Monats-Gesamtwert zu geben, verwende ich folgende Abfragen:
PHP:
$jahr_array = array();
$monat_array = array();
$abfrage = "SELECT DISTINCT jahr FROM stundenzettel WHERE kunde = '$_SESSION[sz_id]' AND offen = '0'";
$ausgabe = mysql_query($abfrage);
$num = mysql_num_rows($ausgabe);
if ($num > 0) {while ($row = mysql_fetch_object($ausgabe)){
array_push($jahr_array,$row->jahr);}}
for($a=0; $a<count($jahr_array); $a++){
$abfrage2 = "SELECT DISTINCT monat FROM stundenzettel WHERE kunde = '$_SESSION[sz_id]' AND jahr = '$jahr_array[$a]' AND offen = '0'";
$ausgabe2 = mysql_query($abfrage2);
$num2 = mysql_num_rows($ausgabe2);
if ($num2 > 0) {while ($row2 = mysql_fetch_object($ausgabe2)){
array_push($monat_array,$row2->monat);}}
for($b=0; $b<count($monat_array); $b++){
$summe2 = 0;
$abfrage3 = "SELECT * FROM stundenzettel WHERE kunde = '$_SESSION[sz_id]' AND jahr = '$jahr_array[$a]' AND monat = '$monat_array[$b]' AND offen = '0'";
echo $abfrage3 . "<br>";
echo $jahr_array[$a] . "<br>";
$ausgabe3 = mysql_query($abfrage3);
$num3 = mysql_num_rows($ausgabe3);
if ($num3 > 0) {while ($row3 = mysql_fetch_object($ausgabe3)){
$wert2 = $row3->stunden * $row3->satz;
$summe2 = $summe2 + $wert2;
Leider erhalte ich dabei folgendes Ergebnis:
Code:
Jahr | Monat | Wert
===================
2005 | Februar | 595 €
----------------------
2005 | Januar | 595 €
----------------------
2004 | Februar | 270 €
----------------------
2004 | Februar | 270 €
Also habe ich mir mal Abfrage3 ausgeben lassen:
Code:
SELECT * FROM stundenzettel WHERE kunde = 'XYZ' AND jahr = '2005' AND monat = '02' AND offen = '0'
SELECT * FROM stundenzettel WHERE kunde = 'XYZ' AND jahr = '2005' AND monat = '01' AND offen = '0'
SELECT * FROM stundenzettel WHERE kunde = 'XYZ' AND jahr = '2004' AND monat = '02' AND offen = '0'
SELECT * FROM stundenzettel WHERE kunde = 'XYZ' AND jahr = '2004' AND monat = '01' AND offen = '0'
SELECT * FROM stundenzettel WHERE kunde = 'XYZ' AND jahr = '2004' AND monat = '02' AND offen = '0'
Leider gibt mir das auch keinen entscheidenden Hinweis auf den Fehler.
Ich würde mich super freuen, wenn Ihr mir daher weiterhelfen könnt.
Vielen Dank und eine schöne Woche!