HILFE Db Werte ermitteln und ausgeben

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

  • #16
    hallo nochmals

    PHP-Code:
    $result mysql_query ("select 
         WEEK(FROM_UNIXTIME(regdate),3) kwoche,
         YEAR(FROM_UNIXTIME(regdate)) jahr,
         WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
         count(*) anz
    from user 
    group by kwoche"
    ); 
    korrgiert man auch noch WEEKDAY, so sollte die SQL Anweisung nun stimmen - hope so...

    PHP-Code:
    while ($res mysql_fetch_array($result))
    {
    echo 
    $res["kwoche"]; // liefert Kalenderwoche
    echo $res["jahr"]; // liefert Jahreszahl
    ...

    um zur Ausgabe zu kommen, wie sie im ersten Posting steht, wirst Du noch die eine oder andere Schleife einsetzen müßen ... ein wenig Arbeit überlasse ich Deiner eigenen Kreativität

    Kommentar


    • #17
      Original geschrieben von myfavour
      hallo nochmals

      PHP-Code:
      $result mysql_query ("select 
           WEEK(FROM_UNIXTIME(regdate),3) kwoche,
           YEAR(FROM_UNIXTIME(regdate)) jahr,
           WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
           count(*) anz
      from user 
      group by kwoche"
      ); 
      Hmm tagnr bleibt immer auf 0 die anderen werte bekomme ich nun.
      Woran kann das noch liegen???

      Kommentar


      • #18
        Hmm tagnr bleibt immer auf 0 die anderen werte bekomme ich nun.
        Woran kann das noch liegen???
        du gruppierst nach der woche, somit erhälts du nur einen tag, den sonntag ...

        ich sag doch, gruppier nach tagen, um die einträge pro tag zu zählen und mach für die wochen nen gruppenwechsel mittels php ...
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #19
          Hallo

          wie meinst du das mit dem gruppieren per php?
          Ich würde es gerne gleich alles zusammen ausgeben können.

          Kommentar


          • #20
            hallo,

            PHP-Code:
            $result mysql_query ("select 
                 WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                 YEAR(FROM_UNIXTIME(regdate)) jahr,
                 WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                 count(*) anz
            from user 
            group by tagnr, kwoche
            order by year, kwoche, tagnr"
            ); 
            du gruppierst nach der woche, somit erhälts du nur einen tag, den sonntag ...
            das ist korrekt, du kannst aber nicht nur nach tagnr gruppieren, da sonst die Tage der unterschiedlichen Wochen zusammengezählt werden, dh. Du erhältst max. 6 Resultate

            hab also die ürsprüngliche Abfrage nochmals aktualisiert:
            gruppiert wird nach tagnr (Montag = 0, Dienstag 1 ... Sonntag 6)
            nach Kalenderwoche (dh. heute wäre KW 38)
            das Ergebnis wirt (ausfsteigend) sortiert nach jahr, kwoche und tagnr (auch in dieser Reihenfolge !!)

            Kommentar


            • #21
              Ich habs

              Hab den Select nun mal so geändert.
              Nun scheind es zu klappen. Mal die Werte vergleichen ob sie stimmen.

              Danke euch für eure Hilfe


              PHP-Code:
              $result mysql_query ("select 
                   WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                   YEAR(FROM_UNIXTIME(regdate)) jahr,
                   WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                   count(*) anz
              from user 
              group by kwoche"
              );

              while (
              $res mysql_fetch_array($result))
              {
              echo 
              "<tr><td><font size=\"2\" face=\"Arial\">KW: $res[kwoche]</font></td>";
              $ergi mysql_query ("select 
                   WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                   YEAR(FROM_UNIXTIME(regdate)) jahr,
                   WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                   count(*) anz
              from user WHERE WEEK(FROM_UNIXTIME(regdate),3)='
              $res[kwoche]'
              group by tagnr
              order by jahr, kwoche, tagnr"
              );echo mysql_error();
              while (
              $erg1 mysql_fetch_array($ergi))

              Zuletzt geändert von phpneuling; 15.09.2004, 12:22.

              Kommentar


              • #22
                Hier nun mein Ergebniss dieses workens.
                Danke nochmals

                Kommentar


                • #23
                  du kannst aber nicht nur nach tagnr gruppieren, da sonst die Tage der unterschiedlichen Wochen zusammengezählt werden, dh. Du erhältst max. 6 Resultate
                  schwachsinn! du erhälts beim gruppieren nach tagen ca. 365 ergebnisse, weil nach tag und nicht nach wochentag (tag der woche) gruppiert wird! da das auch nicht gewünscht ist, sollten auch noch die jahre unterschieden werden.
                  Hab den Select nun mal so geändert.
                  Nun scheind es zu klappen. Mal die Werte vergleichen ob sie stimmen.
                  wow. tolle technik hast du da angewendet! als wenn du jetzt
                  gleich alles zusammen ausgeben
                  würdest.
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #24
                    Hallu derhund

                    verstehe nicht was du jetzt meinst?

                    Kommentar


                    • #25
                      hallo,

                      schwachsinn!
                      Schwachsinn ist es keiner - beide Aussagen sind korrekt gruppiert man nach Jahrestagen erhält man 365 grupiert man nach Wochentagen sind es sieben ohne weitere Einschränkung - im Endeffekt ist es vollkomen egal für die Abfrage selbst, da man IMO so oder so um ein weiteres Konstrukt nicht herumkommt.
                      wow. tolle technik hast du da angewendet!
                      verstehe nicht was du jetzt meinst?
                      Ich glaube, was "derHund" damit ausdrücken will, daß es nicht gerade das beste ist in einer Schleife ein DB-Abfrage zu fahren; nicht zuletzt der Performance wegen.
                      Es wäre geschickter in der while Schleife den aktellen Wert mit dem vorigen Wert zu vergleichen und dann je nach Bedarf weiter zu verfahren...
                      und hier könnte es dann von Interesse sein, wie die Abfrage genau aussieht, genauso ob z.B: garantiert für jeden Tag ein Eintrag vorhanden ist, etc...

                      Kommentar


                      • #26
                        Problem bei Tagesausgabe

                        Hallo ich hab ein Problem mit der Ausgabe.
                        Das Problem: hat sich an einem Tag z.B. kein Mann registriert, verschieben sich die registrierten Männer des nachfolgenden Tages auf den Vortag.
                        Aktuelles Beispiel:
                        Am Donnerstag haben sich keine Männer registriert, gestern jedoch 6St. Diese werden nun in der Ausgabe für Donnerstag ausgegeben.

                        PHP-Code:
                        HIER ERMITTEL ICH DIE KALENDERWOCHE DER DATENSÄTZE
                        $result 
                        mysql_query ("select 
                        WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                        YEAR(FROM_UNIXTIME(regdate)) jahr,
                        WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                        count(*) anz
                        from user 
                        group by kwoche DESC Limit 
                        $eintrag,2");
                        while (
                        $res mysql_fetch_array($result))
                        {

                        HIER LASSE ICH MIR DIE KALENDERWOCHE ANZEIGEN

                        echo "<tr><td valign=\"bottom\" nowrap><font size=\"2\" face=\"Arial\">KW: $res[kwoche]</font></td>";

                        HIER ERMITTEL ICH DIE ANZAHL DER FRAUEN IN DER KALENDERWOCHE PRO TAG (gender1=Frau)
                        $ergif mysql_query ("select 
                        WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                        YEAR(FROM_UNIXTIME(regdate)) jahr,
                        WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                        count(*) anz
                        from user WHERE WEEK(FROM_UNIXTIME(regdate),3)='
                        $res[kwoche]' AND gender='1' 
                        group by tagnr
                        order by jahr, kwoche, tagnr"
                        );echo mysql_error();

                        HIER ERMITTEL ICH DIE ANZAHL DER MÄNNER IN DER KALENDERWOCHE PRO TAG (gender2=MANN)
                        $ergim mysql_query ("select 
                        WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                        YEAR(FROM_UNIXTIME(regdate)) jahr,
                        WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                        count(*) anz
                        from user WHERE WEEK(FROM_UNIXTIME(regdate),3)='
                        $res[kwoche]' AND gender='2'
                        group by tagnr
                        order by jahr, kwoche, tagnr"
                        );echo mysql_error();

                        HIER ERMITTEL ICH DIE ANZAHL DER GESAMTEN IN DER KALENDERWOCHE PRO TAG 
                        $ergig 
                        mysql_query ("select 
                        WEEK(FROM_UNIXTIME(regdate),3) kwoche,
                        YEAR(FROM_UNIXTIME(regdate)) jahr,
                        WEEKDAY(FROM_UNIXTIME(regdate)) tagnr,
                        count(*) anz
                        from user WHERE WEEK(FROM_UNIXTIME(regdate),3)='
                        $res[kwoche]'
                        group by tagnr
                        order by jahr, kwoche, tagnr"
                        );echo mysql_error();
                        while (
                        $ergigg mysql_fetch_array($ergig))
                        {
                        ...
                        Ausgaben der GesammtanzahlAnzahl MännerAnzahl Frauen....
                        }

                        Kommentar

                        Lädt...
                        X