Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem (Datenbank wird nciht ganz ausgefüllt)
Future Soccer 24-08-2004, 23:48 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
<?
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?
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.
$arrtext[$i] = explode(", ", $arrtext[$i]);
Vielleicht fehlt in einigen Einträgen das Leerzeichen. So dass keine 2 Arraywerte rauskommen.
Future Soccer 25-08-2004, 00:17 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
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!
Future Soccer 25-08-2004, 07:17 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
<?
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 wegcode umgebrochen von mrhappiness, nichtnachrechtsscrollenwollend
Original geschrieben von Future Soccer
$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?
Future Soccer 25-08-2004, 19:58 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
Original geschrieben von Future Soccer
ich hab keine Ahnung davon was das alles zu bedeuten heißt
dann viel spass beim grundlagen lernen.
Future Soccer 25-08-2004, 21:18 Original geschrieben von wahsaga
dann viel spass beim grundlagen lernen. och nö
|
|