Anzeige der User die im Jhar 2002 Mitglied geworden sind

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

  • Anzeige der User die im Jhar 2002 Mitglied geworden sind

    Hallo,

    ich lasse mir per folgendem Code die User nach dem Eintrittsdatum anzeigen:

    PHP-Code:
      <?php
        
    include ('config.php');
        
    $abfrage "SELECT eintritt, nickname FROM mitglieder 
        ORDER BY eintritt DESC"
    ;
        
    $ergebnis mysql_query($abfrage);
        echo 
    "<table id='anmeldetabelle'><tr>";
        echo 
    "<th class='links'>Nickname</th>";
        echo 
    "<th class='rechts'>Eintrittsdatum</th>";
        while(
    $row mysql_fetch_object($ergebnis))   
        {
        echo 
    "<tr><td class='links'>";
        echo 
    $row ->nickname;
        echo 
    "</td><td class='rechts'>";
        echo 
    $row ->eintritt;
        }
        echo 
    "</td></tr></table>";
      
    ?>
    Was muss geändert werden, damit nur die User ausgegeben werden,
    die im Jahr 2002 Mitglied geworden sind?

    Die Spalte Eintritt hat den Spaltentyp DATE in der MySQL Datenbank.


    Grüße von Sven
    Zuletzt geändert von Sven4972; 07.01.2007, 20:18.

  • #2
    WHERE eintritt LIKE '%2002%'

    Statt dem 2002 eine Variable wenn es auch für ein anderes Datum gelten soll.

    Kommentar


    • #3
      Hallo,

      danke für Deine Antwort.
      Aber es funktioniert nicht, ich erhalte folgende Fehlermeldung:

      Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in J:\xampp\mitglieder\5jahre.php on line 26


      PHP-Code:
        <?php
          
      include ('config.php');
          
      $abfrage "SELECT eintritt, nickname FROM mitglieder 
          ORDER BY eintritt WHERE eintritt LIKE '%2002%'"
      ;
          
      $ergebnis mysql_query($abfrage);
          echo 
      "<table id='anmeldetabelle'><tr>";
          echo 
      "<th class='links'>Nickname</th>";
          echo 
      "<th class='rechts'>Eintrittsdatum</th>";
          while(
      $row mysql_fetch_object($ergebnis))   
          {
          echo 
      "<tr><td class='links'>";
          echo 
      $row ->nickname;
          echo 
      "</td><td class='rechts'>";
          echo 
      $row ->eintritt;
          }
          echo 
      "</td></tr></table>";
        
      ?>
      Zeile 26 ist diese:
      PHP-Code:
      while($row mysql_fetch_object($ergebnis)) 

      Was läuft da denn falsch?


      Grüße von Sven

      Kommentar


      • #4
        ist eigentlich WHERE eintritt BETWEEN 2003 AND 2001 performanter?

        das lässt sich dann ja auch bei timestamps oder ähnlichem benutzen
        Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
        - ...und solche Behauptungen in "falsches Resourcenmanagement"

        Kommentar


        • #5
          @Sven
          schau Dir mal ein MySql Manual an, die Reihenfolge stimmt bei Dir nicht.

          @zerni
          Da es ein Datumsfeld ist müsste er das Format genau angeben. Weiss nicht ob es nur so einfach geht mit der Angabe der Jahreszahl. Aber wenn es sich nicht um 100000 User oder mehr handelt kann man das auch vernachlässigen.

          Kommentar


          • #6
            DATE-Spalten mit LIKE zu vergleichen kann ja wohl kaum die beste Lösung sein. Wie wärs mit WHERE YEAR(eintritt) = 2002?

            Kommentar


            • #7
              Ach Sven, nochwas....

              dem Namen Deiner php-Datei entnehme ich, dass die Page alle Jahre neu aufbaut wird, sind ja immer 5 Jahre.

              Mach:
              PHP-Code:
              $datum getdate();
              $vergleich $datum[year]-5
              und statt dem fixen Wert 2002 setzt die Variable $vergleich ein.

              Kommentar


              • #8
                Original geschrieben von onemorenerd
                DATE-Spalten mit LIKE zu vergleichen kann ja wohl kaum die beste Lösung sein. Wie wärs mit WHERE YEAR(eintritt) = 2002?
                Stimmt, daran hab ich gar nicht gedacht.

                Kommentar


                • #9
                  Hallo,

                  dankeschön für Eure Hilfe.
                  Jetzt läuft es.

                  PHP-Code:
                  <?php
                      
                  include ('config.php');
                      
                  $datum getdate();
                      
                  $vergleich $datum[year]-5;
                      
                  $abfrage "SELECT nickname, date_format(eintritt, '%d.%m.%Y')
                      AS datum FROM mitglieder WHERE YEAR(eintritt) = 
                  $vergleich 
                      ORDER BY eintritt"
                  ;
                      
                  $ergebnis mysql_query($abfrage);
                      echo 
                  "<table id='anmeldetabelle'><tr>";
                      echo 
                  "<th class='links'>Nickname</th>";
                      echo 
                  "<th class='rechts'>Eintrittsdatum</th>";
                      while(
                  $row mysql_fetch_object($ergebnis))   
                      {
                      echo 
                  "<tr><td class='links'>";
                      echo 
                  $row ->nickname;
                      echo 
                  "</td><td class='rechts'>";
                      echo 
                  $row ->datum;
                      }
                      echo 
                  "</td></tr></table>";
                    
                  ?>


                  Grüße von Sven
                  Zuletzt geändert von Sven4972; 08.01.2007, 07:46.

                  Kommentar


                  • #10
                    Original geschrieben von onemorenerd
                    DATE-Spalten mit LIKE zu vergleichen kann ja wohl kaum die beste Lösung sein. Wie wärs mit WHERE YEAR(eintritt) = 2002?
                    ah genau das YEAR() hatte ich gesucht, aber da ich mir nicht sicher war ob es das gibt, hab ich es lieber nicht gepostet
                    Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
                    - ...und solche Behauptungen in "falsches Resourcenmanagement"

                    Kommentar


                    • #11
                      Original geschrieben von Godfrey
                      Ach Sven, nochwas....

                      dem Namen Deiner php-Datei entnehme ich, dass die Page alle Jahre neu aufbaut wird, sind ja immer 5 Jahre.

                      Mach:
                      PHP-Code:
                      $datum getdate();
                      $vergleich $datum[year]-5
                      und statt dem fixen Wert 2002 setzt die Variable $vergleich ein.
                      ähm,

                      $vergleich = date('Y');

                      oder direkt

                      WHERE YEAR(eintritt) = ' . date('Y') . '...

                      aber naja...

                      Kommentar


                      • #12
                        die -5 aber nicht vergessen

                        Kommentar


                        • #13
                          jupp.

                          Kommentar

                          Lädt...
                          X