Toon posts:

[php] veel data invoeren in db

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

Verwijderd

Topicstarter
ik heb een heleboel data in te voeren in een sql database. Nu heb ik daarvoor een scriptje geschreven die prima steeds 1 regel invoert. Want elke regel moet in een aparte kolom.
Andrei Morant - Live @ MKUltra Radio (Part 1) [07-03-98].mp3
Andrei Morant - Live @ MKUltra Radio (Part 2) [07-03-98].mp3
Andrei Morant - Live @ C2K [2000].mp3
Andrei Morant - Live @ Chicago [2000].mp3
zo heb ik dus een textfile met een regel of 2000. Nu wil ik dat niet handmatig gaan invoeren maar een script dat laten doen, weet zelf alleen niet hoe ik dat in php kan maken.
Iemand ideen hoe ik zeg maar alle data in een input box gooi en dat hij elke regel in een appart kolom zet in de db?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Zoek maar eens op www.php.net onder file input

Verwijderd

Topicstarter
wordt ik niet veel wijzer van

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 21:28

JSchut

.....

PHP:
1
<?$fp = fopen($filename);while (!feof($fp)) {   $regel = fgets($fp,1000);   // regel met een maximale lengte 1000 bytes   // hier je gquery}?>

Voortaan ff beter zoeken
als je file zoek op php.net krijg je
http://www.php.net/manual/en/function.file.php

en vanaf daar kom je een heel eind

PSN jschut_82 | Xbox: JSchut82


  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

inderdaad met de file functie moet je wel een eind komen.
PHP:
1
<?$i=0;$lijst = file("blaat.txt");while($i < count($lijst)){  mysql_query("INSERT INTO bla(kolom) VALUES('$lijst[$i]')");  $i++;}?>

Zoiets kan je gebruiken

ActueleWind


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En in een text-input is toch triviaal?
$waarde uitlezen, $waarde split()ten en elke $split[] in je $database() "INSERT..."en.

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Op woensdag 01 mei 2002 23:10 schreef ACM het volgende:
En in een text-input is toch triviaal?
$waarde uitlezen, $waarde split()ten en elke $split[] in je $database() "INSERT..."en.
Maar om 2000 query's erin te raggen duurt nogal lang.. 2000 keer "INSERT..." is langzaaaammm.. Maar wat je kán doen is meerdere regels in 1 query erin zetten..

INSERT INTO table (kolom1, kolom2) VALUES ("waarde1", "waarde2"), ("waarde3", "waarde4"), ....

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 01 mei 2002 23:26 schreef elviver het volgende:
Maar om 2000 query's erin te raggen duurt nogal lang.. 2000 keer "INSERT..." is langzaaaammm..
2000 inserts is niet langzaam :P

Ik las net voor wat onderhoud een tabel, die in de dumpfile 700MB was, in die met zo'n 10-15000 inserts per "refresh" ging.
Lijkt me dus dat 2000 ruim snel genoeg geinsert zijn om niet zo moeilijk te moeten doen.

Evt zet je eerst de key's uit, maar das allemaal zinloos gedoe voor die ene keer.

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Op woensdag 01 mei 2002 23:36 schreef ACM het volgende:

[..]

2000 inserts is niet langzaam :P

Ik las net voor wat onderhoud een tabel, die in de dumpfile 700MB was, in die met zo'n 10-15000 inserts per "refresh" ging.
Lijkt me dus dat 2000 ruim snel genoeg geinsert zijn om niet zo moeilijk te moeten doen.

Evt zet je eerst de key's uit, maar das allemaal zinloos gedoe voor die ene keer.
Dan zal het vast gelegen hebben aan de rest van de code ofzo, maar bij mij duurde de insert van 6102 records (8 kolommen) 2 minuten.. In 1 query was het in 3 seconde klaar

Verwijderd

Topicstarter
PHP:
1
<? include("dbconfig.php"); mysql_connect("$dbhost","$dbuser","$dbpassword"); mysql_select_db("$dbname");$inhoud = fopen("testss.txt", "r");$rij = explode(".mp3", $inhoud);for($i=0; $i<count($rij); $i++){$sql= "INSERT INTO djsetjes (titel) VALUES ('$rij[$i]')";mysql_query($sql) or die("Hmm er is blijkbaar iets niet goed gegaan...");}?>

zover ben ik samen met een vriend gekomen. het .txt file staat inzelfde dir als het php file, we krijgen geen errors ofzo, maar als ik dan in de db ga kijken post hij Resource id #2 ipv de data. Wat doen we fout?:

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Zoek es wat $inhoud wordt na een fopen()...

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Volgens mij kijk je dan niet in de database maar in de link-identifier van de databaseconnectie in PHP.

Verwijderd

Topicstarter
PHP:
1
<? include("dbconfig.php"); mysql_connect("$dbhost","$dbuser","$dbpassword"); mysql_select_db("$dbname");$inhoud = fopen("testss.txt", "r");$rij = explode(".mp3", $inhoud);for($i=0; $i<count($rij); $i++){$sql= "INSERT INTO djsetjes (titel) VALUES ('$rij[$i]')";mysql_query($sql) or die("Hmm er is blijkbaar iets niet goed gegaan...");}?>

dit is het script van Lurge maar die werkt ook niet helemaal. Krijg parse error
Parse error: parse error, unexpected $ in c:\program files\easyphp\www\web\insertnr2.php on line 14

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Het script van lurge is toch echt anders.

LEES die MANUAL nou es over de functie fopen en file, er ZIT VERSCHIL tussen.

Verder is het een triviaal script van 10 regels code en je zou je moeten schamen dat je daar een parse error in krijgt, die je durft te vragen hier in een topic.
Pagina: 1

Dit topic is gesloten.