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

  • Commu
    hat ein Thema erstellt for-schleife für Variabelle.

    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

  • litterauspirna
    antwortet
    [quote=mquadrat;531080]
    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] = ..... 
    Das hier

    PHP-Code:
    $eintrag = array(); 
    würde ich aber vor der while schleife initialisieren, denn sonst wird das bei jedem Schleifendurchlauf neu initialisiert, dass heist du hast mal übertrieben 500 Schleifendurchläufe, dann würdest du das Array 500 mal neu initialisieren.

    Also so besser.

    PHP-Code:
    $eintrag = array();

    while (
    $row mysql_fetch_row($erg)) {


               
    $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] = ..... 
    So initialisierst du richtigerweise das Array nur einmal und nicht bei jedem Schleifendurchlauf.

    Aber ernsthaft frage ich mich was dieses Thema im Fortgeschrittenen Forum zu suchen hat, der TO schreibt in einem Beitrag selber er ist ein Laihe, also hat das hier nichts zu suchen, denn er scheint nicht wirklich zu wissen was er da sucht.

    Gruß litter

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Da siehste mal, was so ein Forum aus einem macht. Man geht mit nem Doktorgrad rein und kommt als Süßwasserpolyp wieder raus

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    Für Fortgeschrittene sind die Wortspiele aber ganz schön flach

    Einen Kommentar schreiben:


  • Koala
    antwortet
    ne - das wären ja Konstabellen.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Wahrscheinlich für Wasserwaagen, die immer „ist gerade“ anzeigen.

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Variabelle ... ist das ne neue Libellen Art?

    Einen Kommentar schreiben:


  • Commu
    antwortet
    Beispiel

    vielen dank für das beispiel

    Einen Kommentar schreiben:


  • mquadrat
    antwortet
    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

    Einen Kommentar schreiben:


  • Commu
    antwortet
    Mysql tabelle

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

    Einen Kommentar schreiben:


  • mquadrat
    antwortet
    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.

    Einen Kommentar schreiben:


  • Commu
    antwortet
    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 {
    .......


    Einen Kommentar schreiben:


  • Commu
    antwortet
    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?

    Einen Kommentar schreiben:


  • mquadrat
    antwortet
    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>
         )
      )
    )

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X