Avatar billede benzon Praktikant
25. september 2004 - 17:11 Der er 5 kommentarer og
1 løsning

Konvertering af data

Skal konvertere noget data til en mysql database fra en tekst fil

Eks.

AD,"Andorra"
AE,"United Arab Emirates"
AF,"Afghanistan"
AG,"Antigua and Barbuda"
AI,"Anguilla"
AL,"Albania"
AM,"Armenia"
AN,"Netherlands Antilles"
AO,"Angola"
AP,"Asia/Pacific Region"
AQ,"Antarctica"

Har 3 fælter i mysql ID Landekode Landenavn

Og skal ha de ting før , ind i Landekode, og det efter der står i mellem "" skal ind i Landenavn Nogen der har et forslag til hvordan jeg gør det nemmest, har en fil med over 200 af sådan nogle der og ville være lækkert hvis den bare læser filen som heder lande.txt
Avatar billede Slettet bruger
25. september 2004 - 18:10 #1
<?php

// du skal selv åbne forbindelsen til databasen her

$tekst=file("lande.txt");

foreach($tekst as $linie){
  list($kode,$navn)=explode(',', $linie,2);
  $navn=str_replace('"','',$navn);
  mysql_query("INSERT INTO tabelnavn (Landekode, Landenavn) VALUES ('$kode','$navn')") or die (mysql_error());
}

?>
Avatar billede jakoba Nybegynder
25. september 2004 - 19:16 #2
Der står "-tegn rundtom hand landenavne, dem skal vi have pillet af, ellers går der syntaksfejl i sql-kommandoen.

foreach($tekst as $linie){
  list($kode,$navn)=explode(',', $linie,2);
  $navn = trim($navn);        //TILFØJET  fjerner linieskiftet og evt blanktegn
  $navn = substr( $navn, 1, strlen($navn)-2 );  //TILFØJET  fjerner "-tegn
  $navn=str_replace('"','',$navn);
  mysql_query("INSERT INTO tabelnavn (Landekode, Landenavn) VALUES ('$kode','$navn')") or die (mysql_error());
}

mvh JakobA
Avatar billede jakoba Nybegynder
25. september 2004 - 19:18 #3
Ups. Det gør du jo også med den replace. sorry.
Avatar billede Slettet bruger
25. september 2004 - 19:51 #4
Nej, der var ikke kommet en syntaksfejl, hvis "-erne var blevet efterladt i strengen, for så ville den streng, MySQL så, se således ud:

INSERT INTO tabelnavn (Landekode, Landenavn) VALUES ('AD','"Andorra"')

og det kan MySQL godt forstå. (Og PHP ville heller ikke have brokket sig.)

Til gengæld var det en fin ide at smide trim() ind også.

<?php

// du skal selv åbne forbindelsen til databasen her

$tekst=file("lande.txt");

foreach($tekst as $linie){
  list($kode,$navn)=explode(',', $linie,2);
  $navn=trim($navn);
  $navn=str_replace('"','',$navn);
  mysql_query("INSERT INTO tabelnavn (Landekode, Landenavn) VALUES ('$kode','$navn')") or die (mysql_error());
}

?>
Avatar billede benzon Praktikant
25. september 2004 - 21:34 #5
sand bare kom med et svar :D dit virkede :D
Avatar billede Slettet bruger
25. september 2004 - 22:36 #6
OK
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