Ankündigung

Einklappen
Keine Ankündigung bisher.

for-schleife für Variabelle

Einklappen

Neue Werbung 2019

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

  • for-schleife für Variabelle

    Und noch mal Hallo Zusammen,

    neues Thema

    ich habe als vorlage eine Tabelle mit 122 Spalten.
    in den Spalten lassen sich 4 mal 17 Spalten zu einer Gruppe zusammen fassen.

    sb_0_bereich
    sb_0_prozent
    sb_0_min_beitrag
    sb_0_1 bis sb_0_7
    sb_0_min_1 bis sb_0_min_7
    sb_0_max_1 bis sb_0_max_7

    diese Spalten gibt es weiter für

    sb_125.... , sb_250..... , sb_500....

    auf Grund von Formular bedingungen wird nur der sb_0... oder sb_125 oder
    angezeigt.

    die Spaltenzähler 1 bis 7 wollte ich per for-schleife anzeigen lassen.

    PHP-Code:
    if ($sb_bereich == "leistung") {
                      
    for(
    $co 1$co <= 7$co++) {

       
    $va "$";
       
    $sb $va."sb_".$co;
       
    $sb_min $va."sb_min_".$co
       
    $sb_max $va."sb_max_".$co;

       if (
    $sb_min $lst && $sb_max $lst) {
         if (
    $sb_$co 50) {
          
    $ergebniss $sb;
        } else {
         
    $ergebniss $lp 1000 $sb;
        }
       }

    // for


    wie kann ich die spalten min_1 und max_1 und 1 zusammen per for-Schleife zusammenfassen?

    Gruß Jörg


  • #2
    Kannst du bitte nochmal etwas detaillierter schreiben, was du machen möchtest?

    Kommentar


    • #3
      [quote=Commu;530990]
      PHP-Code:
         $sb_min $va."sb_min_".$co
         
      $sb_max $va."sb_max_".$co;

         if (
      $sb_min $lst && $sb_max $lst) {
           if (
      $sb_$co 50) {
            
      $ergebniss $sb;
          } else {
           
      $ergebniss $lp 1000 $sb;
          }
         }

      // for


      Das versteh ich nicht. $sb_min hat doch z.B. den Wert "$sb_min_1" und $sb den Wert "$sb_1". Wie kann man denn das vergleichen und weiterrechnen lassen?

      Was genau hast du vor? Eine Tabelle mit 122 Spalten ist nach meiner Meinung schon so das falsche Datenbankdesign.

      Kommentar


      • #4
        tabelle-design

        die tabelle wurde nicht von mir erstellt, und ist so noch in Benutzung

        ich wollte einfach nur eine aus wertung machen.

        Ursprünglich hatte ich die Auswertung so :

        mein Ziel war es die 7 if-Abfragen durch eine 1 for-Schleife zu ersetzen.

        PHP-Code:
                        if ($sb_bereich == "leistung") {
                          if (
        $sb_min_1 $lst && $sb_max_1 $lst) {
                            if (
        $sb_1 50) {
                              
        $ergebniss $sb_1;
                            } else {
                              
        $ergebniss $lp 1000 $sb_1;
                            }
                            
        $sb_db $sb_1;
                          }
                          if (
        $sb_min_2 $lst && $sb_max_2 $lst) {
                            if (
        $sb_2 50) {
                              
        $ergebniss $sb_2;
                            } else {
                              
        $ergebniss $lp 1000 $sb_2;
                            }
                          }
                          if (
        $sb_min_3 $lst && $sb_max_3 $lst) {
                            if (
        $sb_3 50) {
                              
        $ergebniss $sb_3;
                            } else {
                              
        $ergebniss $lp 1000 $sb_3;
                            }
                          }
                          if (
        $sb_min_4 $lst && $sb_max_4 $lst) {
                            if (
        $sb_4 50) {
                              
        $ergebniss $sb_4;
                            } else {
                              
        $ergebniss $lp 1000 $sb_4;
                            }
                          }
                          if (
        $sb_min_5 $lst && $sb_max_5 $lst) {
                            if (
        $sb_5 50) {
                              
        $ergebniss $sb_5;
                            } else {
                              
        $ergebniss $lp 1000 $sb_5;
                            }
                          }
                          if (
        $sb_min_6 $lst && $sb_max_6 $lst) {
                            if (
        $sb_6 50) {
                              
        $ergebniss $sb_6;
                            } else {
                              
        $ergebniss $lp 1000 $sb_6;
                            }
                          }
                          if (
        $sb_min_7 $lst && $sb_max_7 $lst) {
                            if (
        $sb_7 50) {
                              
        $ergebniss $sb_7;
                            } else {
                              
        $ergebniss $lp 1000 $sb_7;
                            }
                          }
                        } 

        Kommentar


        • #5
          Ja, ist ja auch immer die selbe Logik (was auch immer die tut). Also stell Dir bspw. ein Array mit $sb_min_n , $sb_max_n zusammen und durchlaufe das.

          PS: Der Code ist furchtbar.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Ah jetzt. Wie Nikosch sagt: Die Tabelle in Arrays umwandeln.

            Also beispielsweise wie folgt. Ob die Struktur so passt kommt halt auf die Auswertung an.

            Code:
            array (
              0 => array (
                 'bereich' = <Wert>, 
                 'prozent' = <Wert>, 
                 'min-beitrag' => <Wert>, 
                 1 => array (
                    'wert' => <Wert>, 
                    'min' => <Wert>, 
                    'max' => <Wert>
                 ),
                 ...
                 7 => array (
                    'wert' => <Wert>, 
                    'min' => <Wert>, 
                    'max' => <Wert>
                 )
              ),
              125 =>  array (
                 'bereich' = <Wert>, 
                 'prozent' = <Wert>, 
                 'min-beitrag' => <Wert>, 
                 1 => array (
                    'wert' => <Wert>, 
                    'min' => <Wert>, 
                    'max' => <Wert>
                 ),
                 ...
                 7 => array (
                    'wert' => <Wert>, 
                    'min' => <Wert>, 
                    'max' => <Wert>
                 )
              )
            )

            Kommentar


            • #7
              hatte ich versucht

              wenn ich es wüste wie die Schlefe aus ehen soll???

              wie weise ich der der sb_min_??? den zaähler zu?

              Kommentar


              • #8
                array

                ich als Leihe habe da meine schwierigkeiten,

                es gibt 7 mal min und 7 mal max und 7 mal die werte Zuweisung für z.B. "0"

                so hole ich die werte aus der tabelle
                PHP-Code:
                $sb $_POST["sb"]; // kann 0, 125, 250 und 500 sein

                $sql "SELECT id,
                                                               sb_"
                .$sb."_bereich,
                                                               sb_"
                .$sb."_prozent,
                                                               sb_"
                .$sb."_min_beitrag,
                                                               sb_"
                .$sb."_1,
                                                               sb_"
                .$sb."_2,
                                                               sb_"
                .$sb."_3,
                                                               sb_"
                .$sb."_4,
                                                               sb_"
                .$sb."_5,
                                                               sb_"
                .$sb."_6,
                                                               sb_"
                .$sb."_7,
                                                               sb_"
                .$sb."_min_1,
                                                               sb_"
                .$sb."_max_2,
                                                               sb_"
                .$sb."_min_2,
                                                               sb_"
                .$sb."_max_2,
                                                               sb_"
                .$sb."_min_3,
                                                               sb_"
                .$sb."_max_3,
                                                               sb_"
                .$sb."_min_4,
                                                               sb_"
                .$sb."_max_4,
                                                               sb_"
                .$sb."_min_5,
                                                               sb_"
                .$sb."_max_5,
                                                               sb_"
                .$sb."_min_6,
                                                               sb_"
                .$sb."_max_6,
                                                               sb_"
                .$sb."_min_7,
                                                               sb_"
                .$sb."_max_7
                                                          FROM tbl_tabelle
                                                         WHERE vers_id = 
                $vers_id";
                                
                $erg mysql_query($sql);
                                while (
                $row mysql_fetch_row($erg)) {
                                  
                $sb_bereich $row[1];
                                  
                $sb_prozent $row[2];
                                  
                $sb_min_beitrag $row[3];
                                  
                $sb_1 $row[4];
                                  
                $sb_2 $row[5];
                                  
                $sb_3 $row[6];
                                  
                $sb_4 $row[7];
                                  
                $sb_5 $row[8];
                                  
                $sb_6 $row[9];
                                  
                $sb_7 $row[10];
                                  
                $sb_min_1 $row[11];
                                  
                $sb_max_2 $row[12];
                                  
                $sb_min_2 $row[13];
                                  
                $sb_max_2 $row[14];
                                  
                $sb_min_3 $row[15];
                                  
                $sb_max_3 $row[16];
                                  
                $sb_min_4 $row[17];
                                  
                $sb_max_4 $row[18];
                                  
                $sb_min_5 $row[19];
                                  
                $sb_max_5 $row[20];
                                  
                $sb_min_6 $row[21];
                                  
                $sb_max_6 $row[22];
                                  
                $sb_min_7 $row[23];
                                  
                $sb_max_7 $row[24];
                                if (
                $sb_bereich == "leistung") {
                                  if (
                $sb_min_1 $lst && $sb_max_1 $lst) {
                                    if (
                $sb_1 50) {
                                      
                $ergebniss $sb_1;
                                    } else {
                .......


                Kommentar


                • #9
                  Diese Tabelle, die du hast wie schaut die denn aus? Also ist das eine CSV Datei oder sowas? Oder bekommst du als Grundlage schon alles in diesen Variablen übergeben??

                  Einen Variablennamen aus anderen Variablen zusammenzubasteln ist IMHO langfristig keine wirklich gut funktionierende Lösung.

                  Kommentar


                  • #10
                    Mysql tabelle

                    die mysql tabelle wird aus einem PHP-Script (nicht von mir erstellt) gepflegt.

                    Kommentar


                    • #11
                      PHP-Code:
                             while ($row mysql_fetch_row($erg)) {

                                 
                      $eintrag = array();

                                 
                      $eintrag['bereich'] = $row[1]; 
                                 
                      $eintrag['prozent'] = $row[2]; 
                                 
                      $eintrag['min_beitrag'] = $row[3]; 

                                 
                      $eintrag[1] = array (
                                      
                      'wert' => $row[4], 
                                      
                      'min' => $row[11], 
                                      
                      'max' => $row[12]),

                                 
                      $eintrag[2] = ..... 
                      PHP-Code:
                                   if ($eintrag['bereich'] == "leistung") {

                                        if (
                      $eintrag[1]['min'] < $lst && $eintrag[1]['max']  > $lst) {
                                          if (
                      $eintrag[1]['wert']  > 50) {
                                            
                      $ergebniss $eintrag[1]['wert'];
                                          } else { 
                      und dann kannst du natürlich deine for-Schleife nehmen und statt der 1 eben den Schleifenzähler.

                      Ist nur eine Möglichkeit gibt nich haufenweise andere, aber das kommt halt drauf an, wie der Rest der Anwendung ausschaut

                      Kommentar


                      • #12
                        Beispiel

                        vielen dank für das beispiel

                        Kommentar


                        • #13
                          Variabelle ... ist das ne neue Libellen Art?

                          Kommentar


                          • #14
                            Wahrscheinlich für Wasserwaagen, die immer „ist gerade“ anzeigen.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              ne - das wären ja Konstabellen.
                              Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                              Kommentar

                              Lädt...
                              X