Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem (Datenbank wird nciht ganz ausgefüllt) [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




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?

 
asp2php
25-08-2004, 00:02 
 
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.

 
em-!x
25-08-2004, 00:03 
 
$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

 
em-!x
25-08-2004, 00:49 
 
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

 
asp2php
25-08-2004, 09:03 
 
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

 
wahsaga
25-08-2004, 21:02 
 
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ö


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:54 Uhr.