Avatar billede presti Nybegynder
04. marts 2004 - 13:33 Der er 13 kommentarer og
1 løsning

Fra tekstfil til poster

Hejsa.

Jeg har en tekstfil med med tre ting. Fornavn,Efternavn,Klasse

Hvordan hulen, får jeg smidt de data over i en tabel i en mysql database. F.eks.

p.key auto ->  elevid
Fornavn -> fornavn
Efternavn -> efternavn
Klasse -> klasse

Kan i hjælpe eksperter???
Avatar billede detox Nybegynder
04. marts 2004 - 13:45 #1
Du kan bruge mysql funktionen LOAD DATA INFILE. Hvordan er din teksfil bygget op:

Fornavn,Efternavn,Klasse
Fornavn,Efternavn,Klasse
Fornavn,Efternavn,Klasse

eller er den adskilt med tab eller andet?
Avatar billede detox Nybegynder
04. marts 2004 - 14:01 #2
Et eksempel, hvis navnene er adskilt med komma og de står på hver sin linie:

LOAD DATA INFILE 'c:\\data.txt' INTO TABLE tabel FIELDS TERMINATED BY ','
Avatar billede detox Nybegynder
04. marts 2004 - 14:17 #3
I dit tilfælde med et autoincrement id skal du angive de andre felters navne:

LOAD DATA INFILE 'c:\\data.txt' INTO TABLE tabel FIELDS TERMINATED BY ',' (fornavn, efternavn, klasse)
Avatar billede presti Nybegynder
04. marts 2004 - 16:57 #4
Jeps... min tekstfil's data er opdelt af et komma... så jeg skal vel bruge dit nederste svar???
Avatar billede detox Nybegynder
04. marts 2004 - 16:59 #5
Ja, prøv den.
Avatar billede presti Nybegynder
04. marts 2004 - 18:08 #6
den opretter slet ikke databasen, når der står sådan her:

<?php
$OpretDB = mysql_query ("create database idrætsdag");

    mysql_select_db("idrætsdag");

    $tabelSQL = "create Table Elever
                    (
  elevid int(25) NOT NULL auto_increment,
  fornavn varchar(25) NOT NULL default '',
  efternavn varchar(25) NOT NULL default '',
  klasse varchar(25) NOT NULL default '',
  PRIMARY KEY  (elevid),


                      )";
        mysql_query($tabelSQL);

LOAD DATA INFILE 'C:\Web\Apache\Apache2\htdocs\Idag\personer.txt' INTO TABLE elever FIELDS TERMINATED BY ','
(fornavn, efternavn, klasse)


?>
Avatar billede detox Nybegynder
04. marts 2004 - 18:23 #7
Du har et komma for meget. Hvor vidt du skal bruge æ i dit databasenavn ved jeg ikke om er smart, men prøv:

<?
$OpretDB = mysql_query ("create database idrætsdag");

    mysql_select_db("idrætsdag");

    $tabelSQL = "create Table Elever
                    (
  elevid int(25) NOT NULL auto_increment,
  fornavn varchar(25) NOT NULL default '',
  efternavn varchar(25) NOT NULL default '',
  klasse varchar(25) NOT NULL default '',
  PRIMARY KEY  (elevid))";
        mysql_query($tabelSQL);

mysql_query("LOAD DATA INFILE 'C:\\Web\\Apache\\Apache2\\htdocs\\Idag\\personer.txt' INTO TABLE Elever FIELDS TERMINATED BY ','
(fornavn, efternavn, klasse)");
Avatar billede detox Nybegynder
04. marts 2004 - 18:24 #8
Tilføj evt.: or die(mysql_error()); til dine forespørgsler.
Avatar billede presti Nybegynder
04. marts 2004 - 18:35 #9
Jeg tror problemet ligger i at den ik kan finde filen personer.txt  :)

File 'C:WebApacheApache2htdocsIdagpersoner.txt' not found (Errcode: 2)
Avatar billede presti Nybegynder
04. marts 2004 - 18:35 #10
Hva faen ska jeg så finde på :)
Avatar billede detox Nybegynder
04. marts 2004 - 18:39 #11
Prøv med enkelte forwardslashes istedet for dobbelte backwards:

mysql_query("LOAD DATA INFILE 'C:/Web/Apache/Apache2/htdocs/Idag/personer.txt' INTO TABLE Elever FIELDS TERMINATED BY ','
(fornavn, efternavn, klasse)");
Avatar billede detox Nybegynder
04. marts 2004 - 18:40 #12
Når du bruger \ skal du bruge escape, så det bliver \\
Avatar billede presti Nybegynder
04. marts 2004 - 19:17 #13
Ja... !!! Sådan, det hjalp med / istedet. Tak sku da ha! hvordan gir man dig point?? hehe... n00b!
Avatar billede detox Nybegynder
04. marts 2004 - 19:18 #14
Velbekommen, det med point tror jeg gi'r sig selv nu når jeg ligger et svar ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester