do-while schleife stürzt bei vielen durchläufen ab

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

  • #31
    als textausgabe auf dem screen geht es doch auch

    also wenn ich das ausführe ohne den csv versuch und ohne db-eintrag

    Kommentar


    • #32
      genau das ist es - echo und die query befinden sich nicht in einem und dem selben block. schleifenkörper in geschweifte klammern setzen.

      Kommentar


      • #33
        PHP-Code:
        <?php 

        require("connect2.inc.php");

        for(
        $n1=1$n1<10$n1++)
         {for(
        $n2=$n1+1$n2<10$n2++)
             {for(
        $n3=$n2+1$n3<10$n3++)
                {for(
        $n4=$n3+1$n4<10$n4++)
                    {for(
        $n5=$n4+1$n5<10$n5++)
                        {for(
        $n6=$n5+1$n6<10$n6++)}}}}}
          echo 
        $n1.' '.$n2.' '.$n3.' '.$n4.' '.$n5.' '.$n6.'<br />';
          
          
        mysql_query("INSERT INTO lottozahlen VALUES('','$n1','$n2','$n3','$n4','$n5','$n6')");
          
          
        //csv - fwrite($fp, $n1.','.$n2.','.$n2.','.$n2.','.$n2.','.$n2.'\n');


        ?>

        so?
        Zuletzt geändert von damilchmann; 01.05.2007, 02:25.

        Kommentar


        • #34
          nein. schau dir in deinem buch doch wenigstens ab, wie man schleifen formatiert, damit man sie versteht.

          Kommentar


          • #35
            versuch ich ja. ich zitiere


            for ($i=0;$i<10;$i++)
            {
            echo "$i<br>";



            }

            also inhalt der ersten schleife in klammern, usw.

            Kommentar


            • #36
              genau, und fleißig einrücken.

              Kommentar


              • #37
                Original geschrieben von damilchmann
                und csv gibt auch ne fehlermeldung. ist wohl falsch so

                //csv - fwrite($fp, $n1.','.$n2.','.$n2.','.$n2.','.$n2.','.$n2.'\n');
                ist ja auch klar, du musst zuerst ein filehandle öffnen. http://de2.php.net/manual/de/function.fwrite.php

                ... und "\n" habe ich bewusst in doppelte anführungszeichen gesetzt, ansonsten ist es kein zeilenumbruch.

                Kommentar


                • #38
                  aber so hab ich es doch gemacht.

                  wo liegt mein fehler, steh auf dem schlauch das von dem beispiel zu übertragen.

                  versteh das nicht, ohne db-eintrag nur auf dem screen geht es, aber der eintrag nicht


                  lasst mich die nacht jetzt so nicht hängen



                  PHP-Code:
                  <?php 

                  require("connect2.inc.php");

                  for(
                  $n1=1$n1<10$n1++)
                   for(
                  $n2=$n1+1$n2<10$n2++)
                       for(
                  $n3=$n2+1$n3<10$n3++)
                          for(
                  $n4=$n3+1$n4<10$n4++)
                              for(
                  $n5=$n4+1$n5<10$n5++)
                                  for(
                  $n6=$n5+1$n6<10$n6++)
                       {

                              echo 
                  $n1.' '.$n2.' '.$n3.' '.$n4.' '.$n5.' '.$n6.'<br />';
                    
                              
                  mysql_query("INSERT INTO lottozahlen 

                  VALUES('','
                  $n1','$n2','$n3','$n4','$n5','$n6')");


                       }

                    
                  //csv - fwrite($fp, $n1.','.$n2.','.$n2.','.$n2.','.$n2.','.$n2.'\n');


                  ?>

                  so scheint es zu gehen
                  Zuletzt geändert von damilchmann; 01.05.2007, 02:38.

                  Kommentar


                  • #39
                    formatiere deinen code leserlich!

                    Kommentar


                    • #40
                      sorry penizillin, als anfänger ist man froh überhaupt was gebacken zu bekommen. ums aussehen kümmert man sich danach im freudentaumel. ich weiss, man soll es von anfang an machen aber versuche das gerade zu verstehen und schau dabei nicht auf die form. nicht sauer sein

                      so, die sache läuft und die erste mio ist fast fertig aber krass groß wird das ganze, sind jetzt schon fast 50 mb.

                      noch ne frage zu dem weglassen der id, spart sicher durch den fehlenden int wert platz, aber was soll das der ps werden? kommen doch alle zahlen auf jeder position mehrfach vor. widerspricht doch dem prinzip eines ps
                      Zuletzt geändert von damilchmann; 01.05.2007, 02:43.

                      Kommentar


                      • #41
                        so, mit der letzten version hat es geklappt. der ganze akt hat ca. 20 min gedauert und die db ist etwas mehr als 360 mb groß.

                        somit danke ich allen beteiligten für ihre geduld mit mir und ihre hilfe. ohne diese hätte es um einiges länger gedauert.

                        leider konnte die eigentliche frage nach dem problem mit der while-schleife nicht beantwortet werden

                        trotzdem aber herzlichst thx

                        Kommentar


                        • #42
                          Original geschrieben von penizillin
                          closure: 6 über 49 ist nun mal keine eingabe, sondern die konstante aus einem realen bezug (lotto ziehung). wenn du schon behauptest, die werte sollen flexibel bleiben und als eingabe angesehen werden, so musst du die sechs dazunehmen. dann wird 3dmax's code aber nicht mehr hinreichend korrekt, da die anzahl der schleifen fest ist. dann wird die laufzeit auch tatsächlich exponentiell
                          Das wollte ich auch ursprünglich, aber dann hätte
                          ich die funktion rekursiv umformulieren müssen oder einen stack
                          einführen. Beides hätte den OP nur unnötig verwirrt.

                          greets
                          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                          Kommentar


                          • #43
                            Original geschrieben von damilchmann
                            noch ne frage zu dem weglassen der id, spart sicher durch den fehlenden int wert platz, aber was soll das der ps werden? kommen doch alle zahlen auf jeder position mehrfach vor. widerspricht doch dem prinzip eines ps
                            Man kann einen Primärschlüssel auch über mehreren Spalten definieren. In diesem Fall ist die Kombination aller 6 Zahlen einzigartig.
                            Aber du solltest den PS erst anlegen, nachdem du die Daten in die Tabelle geschrieben hast!

                            Kommentar

                            Lädt...
                            X