Problem (Datenbank wird nciht ganz ausgefüllt)

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

  • Problem (Datenbank wird nciht ganz ausgefüllt)

    Also ich habe folgendes Problem wenn ich eine Datei aufrufe die mir 100000 Datenbankeinträge erzeugen soll bleiben in den Spalten vorname und nachname immer um die 600 Zeilen frei

    PHP-Code:
    <?

    function Spielergenerieren($NumberOfPlayers){
    // Variablen
    $vorname;
    $nachname;
    $filename = "Spieler.txt";
    srand ((double) microtime() * 1000000);


    // Namensdatei öffnen und auslesen
    if (!($file = fopen($filename, "r"))) {
       echo("Could not open file");
    }
    else {
         $arrtext = file($filename); // Datei einlesen
    }

    /**
     * Namen in die Arrays einlesen
     */
    $arrlength = count($arrtext);

    for ($i = 0; $i < 439; $i++) {
        $arrtext[$i] = explode(", ", $arrtext[$i]);
        $nachname[$i] = $arrtext[$i][0];
        $vorname[$i] = $arrtext[$i][1];
    }

    ?>
    was müsst ich hier ändern damit alle ausgefüllt werden?

  • #2
    1. wofür machst du ein fopen und nicht weiter verwendet und auch kein fclose?
    2. du bestimmt zwar per count die Anzahl der Elemente, verwendet aber auch wiederum nicht
    3. stattdessen lässt du $i nur bis 438 einschliesslich laufen, unabhängig davon, ob $arrtext wirklich soviel Elemente besitzt oder nicht. Es kann weniger, es kann aber auch mehr sein.

    Fazit: weisst du denn was du da tutst, ist das Script von dir?

    BTW: das mit dem 100000 und 600 musst du noch erklären.

    Kommentar


    • #3
      $arrtext[$i] = explode(", ", $arrtext[$i]);

      Vielleicht fehlt in einigen Einträgen das Leerzeichen. So dass keine 2 Arraywerte rauskommen.

      Kommentar


      • #4
        Original geschrieben von asp2php
        1. wofür machst du ein fopen und nicht weiter verwendet und auch kein fclose?
        2. du bestimmt zwar per count die Anzahl der Elemente, verwendet aber auch wiederum nicht
        3. stattdessen lässt du $i nur bis 438 einschliesslich laufen, unabhängig davon, ob $arrtext wirklich soviel Elemente besitzt oder nicht. Es kann weniger, es kann aber auch mehr sein.

        Fazit: weisst du denn was du da tutst, ist das Script von dir?

        BTW: das mit dem 100000 und 600 musst du noch erklären.
        nein, ist nicht von mir,

        also es sollen 100000 vornamen und nachnamen in die datenbank rein, dabei werden aber einige vornamen und nachnamen felder freigelassen

        Kommentar


        • #5
          Du meinst dass dieses $nachname und dieses $vorname array nicht vollständig beschrieben wird?

          Beschreib einfach einmal was genau das Script, das du gepostet hast, machen soll. Von einem Eintrag in eine db ist nämlich nichts erkennbar!

          Kommentar


          • #6
            Original geschrieben von em-!x
            Du meinst dass dieses $nachname und dieses $vorname array nicht vollständig beschrieben wird?

            Beschreib einfach einmal was genau das Script, das du gepostet hast, machen soll. Von einem Eintrag in eine db ist nämlich nichts erkennbar!
            Hatte nur einen Teil davon gepostet

            PHP-Code:
            <?

            function Spielergenerieren($NumberOfPlayers){
            // Variablen
            $vorname;
            $nachname;
            $filename = "spieler.php3";
            srand ((double) microtime() * 1000000);


            // Namensdatei öffnen und auslesen
            if (!($file = fopen($filename, "r"))) {
               echo("Could not open file");
            }
            else {
                 $arrtext = file($filename); // Datei einlesen
            }

            /**
             * Namen in die Arrays einlesen
             */
            $arrlength = count($arrtext);

            for ($i = 0; $i < 439; $i++) {
                $arrtext[$i] = explode(", ", $arrtext[$i]);
                $nachname[$i] = $arrtext[$i][1];
                $vorname[$i] = $arrtext[$i][0];
            }

                $link = @mysql_pconnect ("xxx", "xxx", "xxx");
                if ($link && mysql_select_db ("xxx")) {
                       echo ("alles ok");
                }

            // einige Variablen mit Startwert belegen.
            $id = "NULL";
            $land = "Deutschland";
            $verein_id = "0";
            $marktwert = "0";
            $transferliste_gebot = "0";
            $transferliste_gehalt = "0";
            $transferliste_spiele = "0";
            $transferliste_verein = "0";
            $transferliste_ende = "0";
            $vertrag_spiele = "34";
            $statistik_spiele = "0";
            $statistik_tore = "0";
            $karten_gelb = "0";
            $karten_rot = "0";
            $gesperrt_spiele = "0";
            $zustand = "1";
            $geschichte = "NULL";

            // Spielerwerte generieren und Spieler in die Datenbank eintragen
            for ($i =$start_id[0]+1; $i < ($NumberOfPlayers+$start_ID[0]+1); $i++) {
            $verein_id = 0;
            $vorname2 = $vorname[rand(0,439)];
            $nachname2 = $nachname[rand(0,439)];
            $zufallszahl = rand(0, 100);
            $age = rand(18,35);
            $wert_staerke = rand(1,100);
            $wert_aggressivitaet = rand(1,100);
            $wert_fitness = rand(1,100);
            $spielernummer = rand(1,99);

            // Position festlegen 35% M, 25% S, 25%  V, 15% T
            if ($zufallszahl >= 65) {
               $typ = "Zentrales Mittelfeld";
            } elseif ($zufallszahl >= 40) {
               $typ = "Sturm";
            } elseif ($zufallszahl >= 15) {
              $typ = "Innenverteidiger";
            } else {
              $typ = "Torwart";
            }

            // SQL Statement für Table fm_spieler
            $sqlstatement = "INSERT INTO fm_spieler (id,vorname,nachname,spielernummer,typ,age,land,
            verein_id,wert_staerke,wert_aggressivitaet,
            wert_fitness,marktwert,transferliste_gebot,
            transferliste_gehalt,transferliste_spiele,
            transferliste_verein,transferliste_ende,
            vertrag_spiele,vertrag_gehalt,statistik_spiele,
            statistik_tore,karten_gelb,karten_rot,gesperrt_spiele,
            zustand,geschichte)";
            $vertrag_gehalt=$wert_aggressivitaet*$wert_staerke*$wert_fitness/$age;
            $marktwert=$wert_aggressivitaet*2+$wert_staerke*2+$wert_fitness/$age;
            $sqlstatement = $sqlstatement . "\r\n" . "VALUES
            (\"" . $i . "\",\"" . $vorname2 . "\",\"" . $nachname2 . "\",\"" . $spielernummer . "\",\""
             . $typ . "\",\"" . $age . "\",\"" . $land . "\",\"" 
            . $verein_id . "\",\"" . $wert_staerke . "\",\"" . 
            $wert_aggressivitaet . "\",\"" . $wert_fitness . "\",\""
             . $marktwert . "\",\"" . $transferliste_gebot . "\",\"" . $transferliste_gehalt .
             "\",\"" . $transferliste_spiele . 
            "\",\"" . $transferliste_verein . "\",\"" . $transferliste_ende . 
            "\",\"" . $vertrag_spiele . "\",\"" . $vertrag_gehalt . "\",\"" . 
            $statistik_spiele . "\",\"" . $statistik_tore . "\",\"" . 
            $karten_gelb . "\",\"" . $karten_rot . "\",\"" . 
            $gesperrt_spiele . "\",\"" . $zustand . "\",\"" . 
            $geschichte . "\")\r\n";
            mysql_query($sqlstatement);
            }}
            ?>
            Wie gesagt es werden nicht alle Zeilen ausgefüllt manchmal bleiben paar Zeilen nachname, manchmal paar Zeilen vornamne und manchmal beides weg
            EDIT:
            code umgebrochen von mrhappiness, nichtnachrechtsscrollenwollend
            Zuletzt geändert von mrhappiness; 25.08.2004, 06:59.

            Kommentar


            • #7
              Original geschrieben von Future Soccer


              PHP-Code:
              $vorname2 $vorname[rand(0,439)];
              $nachname2 $nachname[rand(0,439)]; 
              wundert dich das? du lässt in der for-Schleife die Arrays vorname und nachname generieren, ABER nur bis $i<439. und HIER nimmst du Randomwerte ZWISCHEN 0 und 439. WAS MEINST DU WAS $vorname[439] oder $nachname[439] für Werte enthält?

              Kommentar


              • #8
                Original geschrieben von asp2php
                wundert dich das? du lässt in der for-Schleife die Arrays vorname und nachname generieren, ABER nur bis $i<439. und HIER nimmst du Randomwerte ZWISCHEN 0 und 439. WAS MEINST DU WAS $vorname[439] oder $nachname[439] für Werte enthält?
                ich hab keine Ahnung davon was das alles zu bedeuten heißt

                Kommentar


                • #9
                  Original geschrieben von Future Soccer
                  ich hab keine Ahnung davon was das alles zu bedeuten heißt
                  dann viel spass beim grundlagen lernen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Original geschrieben von wahsaga
                    dann viel spass beim grundlagen lernen.
                    och nö

                    Kommentar

                    Lädt...
                    X