Hilfe bei Schleifen | uneffektiv ? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Thomas (441 Beiträge) am Dienstag, 14.Mai.2013, 16:32.
    Hilfe bei Schleifen | uneffektiv ?

      Hallo.

      Ich bräuchte mal Hilfe oder einen Anstups, was sich an dem 'gewachsenen' Code verbessern läßt.

      $Eintragszaehler = 0;
      for ($BL=1;$BL<=16;$BL+=1)
      {
      out "<br />$BL";
          get "Id==* range=0,1", "betreuung_$BL";
          for ($i=0;$i<=$_amount_all;$i+=500)
          {
          out "<br />$i";
              get "Nummer<>\"\" range=$i,500", "betreuung_$BL", "betreuung_$BL";
              while (get_next "betreuung_$BL")
              {
             $bnr = $Nummer;
             get "Nummer==$bnr" , "EMAIL";
             if (get_next "EMAIL")
             {
                       out "wahrscheinlich Haha $i $BL<br />";
                    }
             else
             {
                       put ["Nummer",$bnr], "EMAIL";
                       $Eintragszaehler = $Eintragszaehler+1;
                       $Eintraege.= "Die $bnr war in der EMAIL-Datenbank nicht eingetragen.\n\n";
             }
              }
          }
      }
      

      Was soll gemacht werden ?

      In den 16 Datenbanken betreuung_XX stehen Datensätze und das Feld 'Nummer' soll auch in der DB EMAIL vorhanden sein.

      Wo sehe ich den Fehler bzw. Verbesserungsbedarf ?

      Ich vermute, das die Laufzeit durch das put verlängert wird. Würde ich alle fehlenden Nummern 'in einem Ritt' eintragen, wäre es sicher effektiver. Aber mit Arrays (?) kenne ich mich gar nicht aus.

      Danke für jeden Hinweis.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Thomas (441 Beiträge) am Dienstag, 14.Mai.2013, 16:32.
    Hilfe bei Schleifen | uneffektiv ?

      Hallo.

      Ich bräuchte mal Hilfe oder einen Anstups, was sich an dem 'gewachsenen' Code verbessern läßt.

      $Eintragszaehler = 0;
      for ($BL=1;$BL<=16;$BL+=1)
      {
      out "<br />$BL";
          get "Id==* range=0,1", "betreuung_$BL";
          for ($i=0;$i<=$_amount_all;$i+=500)
          {
          out "<br />$i";
              get "Nummer<>\"\" range=$i,500", "betreuung_$BL", "betreuung_$BL";
              while (get_next "betreuung_$BL")
              {
             $bnr = $Nummer;
             get "Nummer==$bnr" , "EMAIL";
             if (get_next "EMAIL")
             {
                       out "wahrscheinlich Haha $i $BL<br />";
                    }
             else
             {
                       put ["Nummer",$bnr], "EMAIL";
                       $Eintragszaehler = $Eintragszaehler+1;
                       $Eintraege.= "Die $bnr war in der EMAIL-Datenbank nicht eingetragen.\n\n";
             }
              }
          }
      }
      

      Was soll gemacht werden ?

      In den 16 Datenbanken betreuung_XX stehen Datensätze und das Feld 'Nummer' soll auch in der DB EMAIL vorhanden sein.

      Wo sehe ich den Fehler bzw. Verbesserungsbedarf ?

      Ich vermute, das die Laufzeit durch das put verlängert wird. Würde ich alle fehlenden Nummern 'in einem Ritt' eintragen, wäre es sicher effektiver. Aber mit Arrays (?) kenne ich mich gar nicht aus.

      Danke für jeden Hinweis.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 15.Mai.2013, 12:07.
    Re: Hilfe bei Schleifen | uneffektiv ?

      >> Wo sehe ich den Fehler bzw. Verbesserungsbedarf ?
      

      gibts einen Fehler?

      verbesserung sehe ich nur bei
      get "Id==* range=0,1", "betreuung_$BL";
      

      um $_amount_all zu bekommen, mach einfach ein
      init "betreuung_$BL";
      

      vielleicht auch bei

      get "Nummer==$bnr" , "EMAIL";
      statt
          if (get_next "EMAIL")
      ein
      if($_amount_query)
      

      ansonsten siehts gut aus
      achja: get "Nummer<>\"\"

      soll sicher "ungleich leer" sein, ist aber in Wirklichkeit ungleich "" (also dem string "")
      der unterstrich _ steht für leer: get "Nummer<>_"

     Antworten


     
 Liste der Einträge von 3300 bis 3450:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!