mach mir eine liste der letzten 7 tage...

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

  • mach mir eine liste der letzten 7 tage...

    hi leute,

    hab gehört ihr seit schnell, mal sehen.

    nun also zu meinem problem:

    ich hab einfach ein brett vorm kopf.
    ich brauche ein select-statement, dass mir von NOW() die letzten 7 tage anzeigt.

    also NOW() liefert: 2004-06-04
    dann sollte meine tabelle so aussehen:

    2004-05-29
    2004-05-30
    2004-05-31
    2004-06-01
    2004-06-02
    2004-06-03
    2004-06-04

    Hinweise, für den, der sich fragt wozu:
    Ich gruppiere gewisse protokollle nach tagen,
    sind nun dort z.B. für gestern keine einträge, dann bekomme ich eine zeile zuwenig anstatt eine 0 für gestern. ich will aber die 0 haben. hat jemand ne idee oder ne query parat?

    danke im voraus.

  • #2
    DATE_SUB() und INTERVAL helfen dir.

    und wenn du keine werte hast, kannst du es nur in der DB nicht so einfach lösen, wenn du einen tag mit '0' dort stehen haben willst.

    ein eintrag pro tag sollte schon mindestens da sein.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      danke, schnell seid ihr, keine 2min

      die query habe ich, hab halt nur das problem mit den "fehlenden" tagen.

      noch jemand lust?
      Zuletzt geändert von berl2n; 04.06.2004, 20:57.

      Kommentar


      • #4
        noch jemand lust?
        erstellt beim query ne temporäre tabelle, die die tage dder letzten sieben tage enthält ( ) und mach nen right/left join drauf, bei NULL ...
        oder nicht?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          hast du vielleicht noch ein bissl (my)sql code zur hand?

          mich interessiert vor allem, wie du die temp tabelle mit werten füllst.

          Kommentar


          • #6
            denk mal nach.

            wir sind zwar schnell aber wir kauen nichts vor. wir geben nur tipps und anregungen, damit man (in dem falle du) einen besseren lernerfolg verbuchen kann. ;-)
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              mmh auch wenn ich denk will nichts dabei rauskommen,
              weil ich mirs einfach nicht vorstellen kann.

              wenn ich dann also um eure güte betteln dürfte

              Kommentar


              • #8
                aber nur ausnahmsweise. normal ist das nämlich nicht.
                hier mal ein einfaches beispiel.

                PHP-Code:
                // symbolische query.
                $sql 'SELECT tag, zahl FROM tabelle LIMIT 7';

                $res mysql_query($sql) or die(mysql_error());
                $data = array();
                while (
                $row mysql_fetch_array($res))
                    
                $data[$row['tag']] = array( 'tag'  => $row['tag'],
                                                
                'zahl' => $row['zahl']);

                // einfach mal ein dummy array aufbauen.
                $tage = array();
                for (
                $i=0$i<7; ++$i)
                    
                $tage['2004-06-0'.$i] = 'dummy';
                    
                foreach (
                $tage as $key => $val)
                {
                    if (isset(
                $data[$key]))
                        echo 
                $data[$key]['tag'] . ' : ' $data[$key]['zahl'] . '<br />';
                    else
                        echo 
                $key ' : 0<br />';

                deine query liefert dir auf jeden fall 7 werte. auch wenn dazwischen werte fehlen. -> egal. ;-)

                dann baust du dir ein array auf. der index ist immer der tag, wie er auch aus der query kommen sollte. ich habe das array mal ganz fies aufgebaut. das musst du dann mal selber machen.

                anschliessend wird das dummy-array durchlaufen und geprüft, ob der dortige index auch im daten-array da ist. wenn ja, dann gib den wert aus. wenn nicht, schreibe eine 0.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  danke für die ausnahme,

                  ich wolltes zwar eigentlich in (my)sql machen,
                  aber ich denke die phplösung muss ich wohl akzeptieren
                  die ist eigentlich auch okay (wäre mir aber wohl auch selbst einfefallen, ich wollte halt nur auf ne mysql lösung raus, aber bevor man sich den kopf zerbricht )

                  ... gecheggt, wird also morgen verbaut

                  Kommentar


                  • #10
                    rein in sql wird's eben nicht gehen. du kannst es mit einer temp-tabelle machen oder eben bei den 7 daten auch rein mit php.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X