Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei Abfrage aus DB

Einklappen

Neue Werbung 2019

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

  • Hilfe bei Abfrage aus DB

    Hallo Zusammen

    Ich hoffe dass ihr mir hier weiter helfen könnt. Das Ziel meiner Abfrage besteht darin, aus der Tabelle MASFLD022, welche aus Datumszeilen besteht, die Anzahl der Einträge für jeden einzelnen Monat eines Jahres in einer Tabelle anzuzeigen. Da ich relativ neu bin in Sachen php und mssql, komme ich hier einfach nicht weiter. Ich hatte vor alles mit einem Array aufzubauen, und danach unter foreach die Tabelle die ausgegeben werden soll aufzubauen.

    Ich hoffe es kann mir jemand weiterhelfen. Wenn ihr mehr Infos braucht bitte einfach melden

    PHP-Code:
    //Query
    $totalinc '';
    $query "SELECT COUNT(*) AS TOTAL FROM MASFLD022 ";
    $result mssql_query(sql_ky2help($query))
        or die(
    'A error Occured: ' mysql_error());

    $applikationen[1] = array(        //erste abfrage für den Januar, daher die [1]
        
    'Total Januar' => "$"        //weiss nicht was hier rein soll -.-
        
    );
    $applikationen[2] = array(       //das gleiche Spiel für den Febr. und so weiter
        
    'Total Februar' => "$"
        
    );

    while(
    $record mssql_fetch_array($result)){
        
    $datemonth = array (1=>"Januar",2=>"Februar",3=>"März",4=>"April",5=>"Mai",6=>"Juni",7=>"Juli",8=>"August",9=>"September",10=>"Oktober",11=>"November",12=>"Dezember");
        
        foreach (
    $applikationen[] as $rows => $row){
            echo 
    '<table border="1"><tr>';
            
            foreach (
    $row as $col => $cell){
                echo 
    '<td>'.$cell.'</td>';
            }
        }



  • #2
    Hallo, gibt dir deine Abfrage überhaupt das gewünschte Ergebnis?
    Du kannst dir mit der Funktion var_dump(); den Inhalt von Variablen usw. ausgeben lassen.

    Eine Info wie deine Tabelle aufgebaut ist würde helfen zu helfen.
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Zitat von icondor Beitrag anzeigen
      Hallo Zusammen

      Ich hoffe dass ihr mir hier weiter helfen könnt. Das Ziel meiner Abfrage besteht darin, aus der Tabelle MASFLD022, welche aus Datumszeilen besteht, die Anzahl der Einträge für jeden einzelnen Monat eines Jahres in einer Tabelle anzuzeigen.
      Wir erzeugen uns mal Testdaten:

      Code:
      test=*# create table icondor as select s, ('2014-01-01'::date + random() * 100 * '1day'::interval)::date from generate_series(1,20) s;
      SELECT 20
      Time: 33,247 ms
      test=*# select * from icondor ;
       s  |    date
      ----+------------
        1 | 2014-01-25
        2 | 2014-01-11
        3 | 2014-02-17
        4 | 2014-01-22
        5 | 2014-03-04
        6 | 2014-01-24
        7 | 2014-04-04
        8 | 2014-02-14
        9 | 2014-04-08
       10 | 2014-03-05
       11 | 2014-01-16
       12 | 2014-02-12
       13 | 2014-01-20
       14 | 2014-02-18
       15 | 2014-03-18
       16 | 2014-04-07
       17 | 2014-02-04
       18 | 2014-01-26
       19 | 2014-03-21
       20 | 2014-03-12
      (20 rows)
      und fragen diese ab:

      Code:
      test=*# select date_trunc('month',date), count(*) from icondor group by 1;
             date_trunc       | count
      ------------------------+-------
       2014-04-01 00:00:00+02 |     3
       2014-02-01 00:00:00+01 |     5
       2014-03-01 00:00:00+01 |     5
       2014-01-01 00:00:00+01 |     7
      (4 rows)
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        @akretschmer diese Abfrage sieht super aus ich werde gleich mal versuchen dass auf mein Beispiel hier anzuwenden.

        Jetzt aber noch eine kleine Bitte: Ich habe mich vorhin falsch ausgedrückt, eigentlich wollte ich, dass die fertige Abfrage dann in eine Tabelle eingefügt wird die in etwa so aussieht:

        PHP-Code:
        echo '<tr>'
        echo '<th>Januar</th>'
        echo '<th>Februar</th>'
        echo '<th>März</th>'
        echo '<th>April</th>'
        echo '<th>Mai</th>'
        echo '<th>Juni</th>'
        echo '<th>Juli</th>'
        echo '<th>August</th>'
        echo '<th>September</th>'
        echo '<th>Oktober</th>'
        echo '<th>November</th>'
        echo '<th>Dezember</th>'
        echo '</tr>'

        /* und die Reihe unten dann automatisch füllen */ 

        Kommentar


        • #5
          Ja, und wo ist da dein Problem?

          Btw., ich würde dir Twig nahe legen. Eine Template-Engine vereinfacht die Arbeit hier ungemein.
          GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

          Kommentar


          • #6
            Hinweise:
            1. Andreas nutzt PostgreSQL! Die Beispiele müssen unter MySQL nicht funktionieren.

            @Andreas: Die erfahrenen Benutzer kennen Dich und wissen das. Ich finde es nicht fair, Anfänger in deine Abseitsfalle laufen zu lassen.

            2. Die MySQL-Funktionen sind veraltet. Nutze besser gleich PDO.
            PHP-Klassen auf github

            Kommentar


            • #7
              Ah da fällt auf

              PHP-Code:
              $result mssql_query(sql_ky2help($query))
                  or die(
              'A error Occured: ' mysql_error()); 
              mysql_error() bringt natürlich nichts, wenn es um eine MSSQL-Datenbank geht.

              Nutze besser gleich PDO.
              Jup. Beim überfliegen, hab ich in der MSSQL-Extension keine Prepared Statements entdeckt, von daher wäre ein Wechsel ratsam.
              Relax, you're doing fine.
              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

              Kommentar


              • #8
                mssql hab ich glatt überlesen. Wird hier wirklich MSSQL benutzt oder ist es ein Schreibfehler?
                PHP-Klassen auf github

                Kommentar


                • #9
                  Danke für all die konstruktiven Vorschläge und Tipps. Und es ist tatsächlich MSSQL, der mysql_error() ist ein fehler von mir.

                  Also ratet ihr mir auf PDO umzusteigen? bzw. direkt mit PDO anzufangen?

                  Kommentar


                  • #10
                    Für MSSQL würde ich da noch mit einen Umstieg warten. Hier steht
                    Warnung

                    Diese Erweiterung ist EXPERIMENTELL.
                    Meine Bemerkung bezog sich auf MySQL. War da auf dem falschen Dampfer.

                    LG jspit
                    PHP-Klassen auf github

                    Kommentar

                    Lädt...
                    X