SWITCH Auswahl - monatliche Einteilung

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

  • SWITCH Auswahl - monatliche Einteilung

    und zwar hab ich einen tabellen output bei der eine bestimmte Variable in jeweils eine Spalte soll (es werden warscheinlich um die 50 Datensaetze ausgewaehlt). Also um es irgendwie verstaendlich zu machen - ungfaehr so:
    PHP-Code:
    switch($date) {

        case (<
    20004-12-31,>2005-02-01):
        
    wert in Monats Spalte
        
    break;
        case (<
    20005-01-31,>2005-03-01):
        
    wert in Monats Spalte
        
    break;
        ....
        ...

    Nun hab ich aber keinen Plan, wie ich:
    1. Die aus einem umfangreichen SELECT stammende Variable $date fuer die SWITCH Anweisung bekomme
    2. Wie ich dann den wert auswaehle (stammt auch aus jeweils aus der SELECT ANWEISUNG )und diesen dann in die richtige Monats-Spalte einsetze.
    Zuletzt geändert von joeCrack; 13.12.2005, 01:59.
    Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
    aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

  • #2
    Also ich hab das jetzt nochmal ein wenig umgebaut. Evtl. ist das ja so verstaendlicher:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    include(
    "connect.php");
    $result mysql_query("SELECT tovalue,actdeldate FROM sam_date_val WHERE projnr=8888");
    $date mysql_fetch_array($result); 

    if (
    $date['actdeldate']>'20004-12-31'){
        echo 
    ///$date['tovalue'] in eine bestimmte spalte;
    }
            elseif(
    $date['actdeldate']<'2006-01-01'){
        echo 
    ///$date['tovalue'] in eine bestimmte spalte;
            
    }

    if (
    $date['actdeldate']<'20004-12-31'){
        echo 
    ///$date['tovalue'] in eine bestimmte spalte;
    }
    .......
    ?>
    So - aber mit einem array kann ich es nicht machen, weil es mind 50 Datensaetze sind aus denen dann jeweils der actdeldate rausgeholt werden muss (zumindest weiss ich nich wies geht).
    UND DANN ist die wichtigere Frage eigentlich, WIE bekomme ich danach das "tovalue" in die Spalte zB Januar oder November (abhaengig vom actdeldate)????
    Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
    aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

    Kommentar


    • #3
      Re: SWITCH Auswahl - monatliche Einteilung

      Original geschrieben von joeCrack
      PHP-Code:
      switch($date) {

          case (<
      20004-12-31,>2005-02-01):
          
      wert in Monats Spalte
          
      break;
          case (<
      20005-01-31,>2005-03-01):
          
      wert in Monats Spalte
          
      break;
          ....
          ...

      hab' nur dein Code gelesen

      wie wär's mit:

      PHP-Code:
      switch true {
         case (
      $date>... and $date<...)
         ...
         ...

      Kommentar


      • #4
        jo schoma nech schlecht...thx
        nur wie bekomme ich jetzt den jeweiligen wert des datensatzes in eine bestimmte Spalte.
        Ich hab die Spalten natuerlihc nach Monaten benannt.
        Kann man jetzt nicht sagen - wenn ein CASE zutrifft, dann in <td"Januar"> oder irgendsowas!?!?!
        Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
        aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

        Kommentar


        • #5
          du gibst die Daten doch zeilenweise in einer HTML-Tabelle aus? Dann kennst du doch die Tabellenstruktur, also wo liegt das Problem? Wenn z.B. für März dann musst du bei Jan und Feb einfach &amp;nbsp; als Platzhalter ausgeben, dann den Wert für März, dann wieder den Platzhalter für den Rest.

          Kommentar


          • #6
            hmmm also ich versteh schon was du meinst, weiss aber nicht ganz wie ich das realisieren kann. ich hab ja, wie gesagt, eine SELECT abfrage.
            ausgegeben werden soll erst der name des projekts und danach eben der monatsbezogene wert.
            also im ansatz ungefaehr so:
            PHP-Code:
            switch (true) {
                case (
            $date['actdeldate']>'20005-12-31' AND $date['WERT']<'2006-02-01'):
                echo
                <
            td>$date['actdeldate']</td>
                <
            td>&nbsp;</td>
                <
            td>&nbsp;</td>
            .......;
                break;
                case (
            $date['actdeldate']>'20005-01-31' AND $date['WERT']<'2005-03-01'):
                <
            td>&nbsp;</td>
                <
            td>$date['actdeldate']</td>
                <
            td>&nbsp;</td>
                <
            td>&nbsp;</td>
            .......;
                break;

            Aber wie bekomme ich den durch die SELECT abfrage ausgewaehlten Projektnamen noch vor dem Monatswert ausgegeben UND wie gebe ich WERT ausgegeben, wennn es sich nicht um ein Array handelt. Es ist eine normale SELECT abfrage bei der mind. 50 Datensaetze mit jeweils Name, Datum und WERT ausgewaehlt werden.
            Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
            aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

            Kommentar


            • #7
              ich würde SQL-seitig die Daten so aufbereiten, dass ich clientseitig nur wenig zu tun habe , z.B. erstmal die Abfrage
              PHP-Code:
              $result mysql_query("SELECT tovalue,actdeldate, month(actdeldate) mymonth 
              FROM sam_date_val WHERE projnr=8888"
              ); 
              somit habe ich in mymonth immer den Monat zu dem Datum. In PHP brauche ich dann nur eine Schleife von 1 bis 12 und prüfe dabei mit if den Wert von $date['mymonth'], wenn er dem Laufwert gleich ist, dann Datum ausgeben, sonst eben &amp;nbsp;

              Kommentar


              • #8
                ok schoen, und gut aber wie gesagt wird spaeter per SELECT anweisung eine unbestimmte anzahl von Datensaetzen ausgegeben.
                die kann ich doch dann nicht mehr so per array auswaehlen oder??
                Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                Kommentar


                • #9
                  ich kann dir nicht ganz folgen

                  Kommentar


                  • #10
                    die MONTH anweisung beim SELECT ist natuerlich echt sehr hilfreich.
                    ich hab mir das jetzt weiter so vorgestellt:
                    PHP-Code:
                    foreach ($????){
                    if (
                    $date['mymonth']=="1"){
                        echo
                    "
                        <td>"
                    .$date['customernr']."</td>
                        <td>"
                    .$date['projnr']."</td>
                        <td>"
                    .$date['Shipyatd']."</td>
                        <td>"
                    .$date['actdeldate']."</td>
                        <td>&nbsp;</td>
                         <td>&nbsp;</td>...."
                    ;
                    }
                        elseif (
                    $date['mymonth']=="2"){
                            echo
                    "
                            <td>"
                    .$date['customernr']."</td>
                            <td>"
                    .$date['projnr']."</td>
                             <td>"
                    .$date['Shipyatd']."</td>
                            <td>&nbsp;</td>
                            <td>"
                    .$date['actdeldate']."</td>..... 
                    Nun werde ich aber nicht nur einen Datensatz auswaehlen sondern sehr viele, die jeeils eben custnr, projnr, shipyard... enthalten.
                    Ich hab keinen Plan wie ich das jetzt in die foreach anweisung packe???
                    Zuletzt geändert von joeCrack; 20.12.2005, 06:50.
                    Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                    aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                    Kommentar


                    • #11
                      zeige ma,l was für ein Endergebnis (Bild) du haben willst, denn bisher hast du ziemlich durcheinander versucht, dass ich nicht mehr weiss, was du möchtest

                      Kommentar


                      • #12
                        Ich glaub du weisst nich so recht wie du die betroffenen Datensätze deines SQL-Statements auslesen sollst.
                        PHP-Code:
                        $result mysql_query("SELECT tovalue,actdeldate, month(actdeldate) mymonth 
                        FROM sam_date_val ORDER BY mymonth ASC"
                        );
                        while ( 
                        $row mysql_fetch_assoc($result) )
                        {
                          echo 
                        "<hr><pre>";
                          
                        var_dump($row);
                          echo 
                        "<pre></hr>";
                          
                        // ....

                        Kommentar


                        • #13
                          Was Du suchst ist eine WHILE-Schleife
                          PHP-Code:
                          $result mysql_query("SELECT tovalue,actdeldate FROM sam_date_val WHERE projnr=8888");
                          echo 
                          '<table>';
                          while (
                          $date mysql_fetch_array($result)) {
                            
                          #hier kommt jetzt Dein Switch bzw. if else , oder was auch immer rein, 
                            #wo die Tabelle ausgegeben wird, aber nur die einzelnen <tr></tr>

                          echo 
                          '</table>'
                          EDIT:
                          reallife war schneller
                          Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                          Kommentar

                          Lädt...
                          X