Riesen Array schnell ? Wie ?

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

  • Riesen Array schnell ? Wie ?

    ich möchte eine Art Playliste haben :
    Das Script dazu habe ich schon zusammengestrickt jedoch dauert mir das echt zu lange
    PHP-Code:
    $i=1;
    while(
    $i <= 8000){
    $fa[]=array("$i","$i");
    $array_komplett = array ($fa); 
    $i++;
    }
    foreach (
    $fa as $key){
    $test=implode(",",$key);
    $test2[] ="($test)";
    }
    $test3=implode(",",$test2);

    $sql"INSERT INTO test (FileID,SpielDatum) VALUES ".$test3;
    echo 
    $sql
    Ohne die Eintragung in die Datenbank ! Das heißt nur das Array füllen !
    Scriptdauer laut microtime im Durchschnitt 27 Sekunden
    das ist für meine Zwecke eindeutig zu lange.

    Eventuell habt ihr eine Idee wie ich es am besten lösen kann.
    Ziel ist auf jeden Fall so wenig wie möglich Zeit zu verschwenden 8000 Einträge mit je 2 Positionen pro Eintrag.

    Vielen Dank im Vorraus.

  • #2
    Was soll das denn werden? Du willst 8000 Einträge machen, wo immer nur 1-1, 2-2 [...] 8000-8000 drinsteht? Wieso?

    und wenn, dann würd ichs so machen:
    PHP-Code:
    $values = array();
    for (
    $i 1$i <= 8000$i++) {
        
    $values[] = "(" $i ", " $i ")";
    }

    $sql "INSERT INTO test(FileId, SpielDatum) VALUES " implode(", "$values)"; 
    ich glaube

    Kommentar


    • #3
      was hast du denn da gemacht?
      PHP-Code:
      $fa[]=array("$i","$i"); 
      ist völlig unnötig, zweimal den selben wert in ein array zu hauen. außerdem solltest du dir diese schreibweise angewöhnen:
      PHP-Code:
      $fa[]=array($i,$i); 
      und dann schreibst du das alles in noch ein array, wobei du es immer wieder überschreibst:
      PHP-Code:
      $array_komplett = array ($fa); 
      und dann baust du wieder ein sinnloses array auf mit den selben inhalten auf:
      PHP-Code:
      foreach ($fa as $key){
      $test=implode(",",$key);
      $test2[] ="($test)";

      was hast du überhaupt vor? im moment schreibst du nur irgendwelche zahlen von 1 bis 8000 (woher kommt die überhaupt) in die datenbank.

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        OffTopic:
        sowas sinnfreies selten gesehen

        Kommentar


        • #5
          sauberes Ding der schnippsel von ministry hat mir schon geholfen
          das ganze dient nur zu testzwecken deswegen die anscheinend verwirrenden Zahlen 1-8000.
          Wollte nur schauen wie lange er generrel braucht um das Array/ die Arrays zu füllen.


          Aber auch von Kropf der einwand ist gerechtfertigt jedoch habe ich mich bei dem füllen vom Array schon was dabei gedacht und wirklich nur zu testzwecken einfach die $i variable in das Array geschmissen.

          bei der live version des scripts werden dann reale Werte das Array füllen
          Danke für eure Hilfe !

          Kommentar


          • #6
            @Topicstarter
            Na ja 8000 Elemente würde ich noch nicht als riesig bezeichnen Schonmal probiert das Sieb des Eratosthenes in PHP umzusetzen? Das gibt dir riesige Arrays
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              naja 8000 ist einwenig untertrieben für das was ich eigentlich vorhabe...
              in Zukunft wird rl ein array mit ca. max. 176.400 Elementen
              und wird später erweitert auf mindestens 100 Arrays dieser Sorte.
              sprich dieses Array von max 176.400 soll 100 mal in die DB gepusht werden.

              und wenn ich jetzt schon für 8000 einträge 27 secunden brauche will ich garnicht anfangen zu rechnen wie lange ich für mein eigentliches vorhaben brauche :/

              Kommentar


              • #8
                Vielleicht solltest du dir überlegen, ob deine Lösung für dein Problem vielleicht einfach ungenügend ist.

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  haste vielleich einen Vorschlag ? Ich wüsste sonst nicht wie ich es am einfachsten mache und habe auch mittlerweile das Problem gelöst.

                  Kommentar


                  • #10
                    Original geschrieben von Postaria
                    haste vielleich einen Vorschlag ? Ich wüsste sonst nicht wie ich es am einfachsten mache und habe auch mittlerweile das Problem gelöst.
                    für konzeptionelle vorschläge reicht die folgende aussage wohl kaum


                    Original geschrieben von Postaria
                    Ich möchte eine Art Playliste haben

                    denn da würd ich sagen, "nimm dir zettel und stift und mach doch die liste"

                    was ich sagen will - ein paar mehr infos zu dem, was du erreichen willst wären schon gut für verbesserungsvorschläge am ansatz...
                    **********
                    arkos
                    **********

                    Kommentar

                    Lädt...
                    X