Negativ Suchen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Negativ Suchen

    Hallo zusammen,

    ich habe folgendes Problem:
    Es gibt für eine kleine Web-Anwendung die ich für unsren Kegelclub gestrickt habe 12 User. Die User können sich nach einem Login für die entsprechende
    Termine als Anwesend oder Abwesend eintragen. Diese Eintragungen werden in einer Tablle gespeichert. Die Spalten sind: id, datum, name und status.

    Nun möchte ich, alle Termine finden, an die in der Zukunft liegen und an denen der angemeldete User noch NICHT eingetragen ist.
    Diesen Ansatz hatte ich mir überlegt, aber das haut nicht hin.
    Könntet ihr mir bitte weiterhelfen ?!?!

    Vielen Dank vorab !

    PHP-Code:
    $aktdatum time();
        
    $heuteist strftime("%Y.%m.%d"$aktdatum);
        
    $query "SELECT DISTINCT datum FROM kegeln WHERE datum >= '" mysql_real_escape_string($heuteist) . "' 
                     AND name != '" 
    mysql_real_escape_string($_SESSION['name']) . "'ORDER BY datum ";  
        
    $result mysql_query($query);
          if(!
    $result)
          {
               die(
    'Ungültige Abfrage: ' mysql_error());
          }
        while(
    $row mysql_fetch_assoc($result))
        {
            echo 
    $row['datum'] . "<br />";
        } 
    Zuletzt geändert von fritzje610; 28.02.2010, 20:39.
    Gruß

    Michael

  • #2
    Das Datumformat in MySQL lautet YYYY-MM-DD und nicht YYYY.MM.DD.

    PHP-Code:
    $heute date('Y-m-d'); 

    Kommentar


    • #3
      Hallo,

      sieh dir mal an, wie das Datum in der DB aussieht und lass dir mal ausgeben, was du zu Vergleichszwecken übergibst.

      Edit: zu spät.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Ich habe die Variable
        PHP-Code:
        $heuteist date("Y-m-d"); 
        angepassst. Aber für meinen query bringt das keine Änderung.
        Gruß

        Michael

        Kommentar


        • #5
          Hat deine Spalte datum auch wirklich den Datentyp DATE?

          Kommentar


          • #6
            Ja, hat sie.
            Siehe Screen-Shot.
            Angehängte Dateien
            Gruß

            Michael

            Kommentar


            • #7
              Ich würde mal vermuten, dein DB Layout ist murks.

              1.) Hast du ne Tabelle, die alle zukünftigen Termine beinhaltet?
              2.) Hast du ne Join-Tabelle die die Termine mit den Usern verbindet, wenn diese teilnehmen?

              Wenn das alles vorhanden ist, kannst du dir mal unseren Thread zum Thema JOINS ansehen. Da steht ein Beispiel drin, das genau dein Vorhaben beschreibt.

              Kommentar


              • #8
                Nein, ich habe nur eine Tabelle, in der die Eintragungen geführt werden.
                Diese die in dem Screen-Shot dargestellt ist.

                Dies wäre doch dann die Join-Tabelle, in der die User mit dem Termin und dem Status (teilnahme / nicht teilnahme) verbunden werden. Richtig ?!
                Die Tabelle mit den Terminen muss dann noch angelegt werden und ich muss mir dann den Thread mit den Joins ansehen.

                Ich hoffe, ich versteh das mit den joins und krieg das für mein Problem umgesetzt.
                Gruß

                Michael

                Kommentar


                • #9
                  Zitat von fritzje610 Beitrag anzeigen
                  Dies wäre doch dann die Join-Tabelle, in der die User mit dem Termin und dem Status (teilnahme / nicht teilnahme) verbunden werden. Richtig ?!
                  Nein, das stimmt nicht. Wie gesagt, lies dir das Join-Thema erstmal durch
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Hat das was mit Normalisierung zu tun?
                    Gruß

                    Michael

                    Kommentar


                    • #11
                      Ja
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Puh, ich hab mir den Thread durchgelesen, allerdings, muss ich zugeben, nicht allzu viel verstanden bzw. wie krieg ich den Transfer zu meinem Problem nicht hin.

                        Ich habe die Tabelle mit den Terminen. Darin gibt's zwei Spalten, id und Termin.
                        So, nun, denke ich, brauche ich noch eine Tabelle mit den Usern, dem entsprechenden Termin und dem Staus (ja/nein). In dieser sind dann die eigentlichen "Nutzdaten" drin. Also, wer wann da oder nicht da ist.
                        Nur, wie finde ich heraus, wenn ich einen Termin gewählt habe, ob der User zu diesem Termin schon was eingetragen hat.
                        Mit joins, dass ist mir klar. Nur wie gesagt, krieg ich es nicht vom Beispiel auf den konkreten Fall umgesetzt.
                        Gruß

                        Michael

                        Kommentar


                        • #13
                          Noch nicht ganz:

                          Tabelle "termin" (id, start, ende, ...)
                          Tabelle "user" (id, vorname, name, ...)
                          Tabelle "anwesenheit" (id, termin_id, user_id, ist_anwesend, ...)

                          Dann kannst du mit Joins arbeiten.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Da fehlt ein Leerzeichen vor ORDER.

                            Kommentar


                            • #15
                              Zitat von onemorenerd Beitrag anzeigen
                              Da fehlt ein Leerzeichen vor ORDER.
                              Es sähe zwar besser aus, aber fehlen tut es nicht.
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X