Hallo, ich habe ein Problem - zur Veranschaulichung habe ich ein Screenshot angehängt.
In der Tabelle habe ich ein Pulldown-Menü mit den Optionen
1.) - Alle Punkte anzeigen
2.) - Nur offene Punkte anzeigen (Fortschritt <100% UND keinAbschlussdatum!)
3.) - Nur geschlossene Punkte anzeigen (Fortschritt = 100% UND Abschlussdatum)
if( isset($_POST['where']) )
{
switch($_POST['where'])
{
case 0:
$where_1 = 'selected="selected"';
break;
case 1:
$where ='WHERE fort<100 and a_dat="" ';
$where_2 = 'selected="selected"';
break;
case 2:
$where = 'where fort=100 and a_dat<>"" ';
$where_3 = 'selected="selected"';
break;
}
}
$sort = "order by lfd_nr DESC";
$sql = "SELECT distinct lfd_nr FROM eintraege $where";
Alles anzeigen
1. und 3. funktionieren wunderbar - aber der 2. Punkt (Alle offenen Punkte anzeigen) leider nicht so ganz.
Grund dafür sind die "History-Punkte" (3 bzw. 3.1), diese haben die Variable his_nr - die normalen Punkte einfach lfd_nr.
Bei dem Punkt 3 wurden z.B. bis zum Abschluss 2 weitere Schritte gemacht. 1. Status war 0%, der 2. war 20% und dann der Abschluss unter Punkt 3.3 mit 100%. Das heisst dieser Punkt ist abgeschlossen.
Rufe ich jetzt aber mit meiner Funktion alle offenen Punkte ab
erscheinen dort auch Punkt 3 und 3.1 - was ich aber nicht will. Der Befehl soll NUR die jeweils höchsten his_nr einer lfd_nr nach den Kriterien (Status <100% and a_dat="") abfragen.
Meine Frage nun: Wie kann ich den Befehl ändern, bzw. welche Anweisung muss ich benutzen um der Option "Alle offenen Punkte anzeigen" zu sagen:
Bitte rufe alle Punkte ab die die Merkmale Fortschritt<100% UND keinAbschl.datum haben, aber überprüfe dies pro lfd_nr NUR in dem Eintrag mit der höchsten his_nr
Ist es einigermaßen verständlich was ich für ein Problem habe?
(Kurz gesagt: Er soll mir bei der Abfrage einfach nicht die Punkte 3 und 3.1 anzeigen, weil die durch 3.3 schon "geschlossen" gelten)