Ergebnis 1 bis 8 von 8

Thema: Fehler bei Abfrage der Tabelle (SQL/PHP)

  1. #1
    Azubi(ne)
    Registriert seit
    16.09.2008
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Beitrag Fehler bei Abfrage der Tabelle (SQL/PHP)

    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)

    PHP-Code:
    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"
    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
    PHP-Code:
    $where ='WHERE fort<100 and a_dat="" '
    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)
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Angehängte Grafiken Angehängte Grafiken

  2. #2
    gelöschter User
    Gast

    Standard

    Ich hab zwar kein Plan, was du da vorhast, aber so Sachen wie
    "ORDER, BY, WHERE, SELECT,..." werden groß geschrieben und ich hab bis jetzt auch noch keinen Query gesehen der Gänsefüßchen enthält, dort benutzt man normalerweise Hochkommas '

    Vielleicht solltest du ein paar MySQL Felder erklären und ein bisschen mehr Code oder den Aufbau der Tabelle posten,...
    hmm... Ich blick zumindest nicht durch
    Gruß crAzywuLf

  3. #3
    Bandit
    Gast

    Standard

    Zitat Zitat von crAzywuLf Beitrag anzeigen
    "ORDER, BY, WHERE, SELECT,..." werden groß geschrieben
    Ist nicht zwingend notwendig.

  4. #4
    gelöschter User
    Gast

    Standard

    Zitat Zitat von bandit600 Beitrag anzeigen
    Ist nicht zwingend notwendig.
    Nunja,... sollte man aber machen meiner Meinung nach

  5. #5
    Unregistriert
    Gast

    Rotes Gesicht

    Bringt mich jetzt auch nicht weiter bei meinem Problem, dass da immer noch lautet:

    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 kein Abschlussdatum haben,
    aber überprüfe dies pro lfd_nr NUR in dem Eintrag mit der höchsten his_nr

  6. #6
    gelöschter User
    Gast

    Standard

    Zitat Zitat von Unregistriert Beitrag anzeigen
    Bringt mich jetzt auch nicht weiter bei meinem Problem, dass da immer noch lautet:

    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 kein Abschlussdatum haben,
    aber überprüfe dies pro lfd_nr NUR in dem Eintrag mit der höchsten his_nr
    poste mal die mysql tabelle ohne die können wir dir so nicht weiterhelfen

  7. #7
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    select * from eintraege where fort < 100 and (a_dat is null or a_dat = '') order by his_nr DESC limit 1

    ungetestet
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  8. #8
    Unregistriert
    Gast

    Standard

    Habs mit ner select MAX IN Variante gelöst .... Danke an KYLT für deinen Vorschlag, hat mich auf die entscheidende Idee gebracht

Ähnliche Themen

  1. MySQL Zeile in Tabelle einfügen. <- Fehler
    Von Chrissi91 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 27.01.2007, 17:58
  2. Abfrage aus einer Tabelle oder Array
    Von MAD im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 03.08.2006, 13:20
  3. Fehler in FF und Fehler beim zentrieren
    Von smello im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 16.03.2006, 15:22
  4. bei Ausgabe von leerer Tabelle --> FEHLER!
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 07.12.2005, 10:33
  5. Fehler bei if-Abfrage
    Von Snowman im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 05.12.2004, 15:46

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •