Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 10:59 Der er 13 kommentarer og
1 løsning

Mister decimaler

Hej,

jeg har lavet dette lille script, der indlæser en .csv fil i en MySQL database - se nedenfor. Det fungerer fint nok med at indlæse dataene, bortset fra, at alle decimalerne ryger, når der indsættes i db'en... What to do?

    include("connect.php");
    $filnavn = $_POST[filename];
    $data = fopen($filnavn,"r");
   
    mysql_query("TRUNCATE TABLE boerneboeger");
    while(!feof($data)) {
        $linie = explode(";", fgets($data));
        mysql_query("INSERT INTO boerneboeger (titel,beskrivelse,forfatter,sidetal,udgivet,varenr,pris) VALUES ('$linie[0]', '$linie[1]',  '$linie[2]', '$linie[3]', '$linie[4]', '$linie[5]', '".substr($linie[6],4)."')");
    }
    fclose($data);
Avatar billede necro655 Nybegynder
27. maj 2005 - 11:06 #1
jeg formoder at er pris som midster sine decimaler ??

hvis ja..hvad type i databasen har du valgt for pris ??? vel ikke integer ?
du skal vælge decimal eller float eller andet som kan indeholder decimal tal.
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 11:11 #2
Ja det er prisen :-)

Jeg bruger decimal 4,2....
Avatar billede necro655 Nybegynder
27. maj 2005 - 11:13 #3
måske får den bytte rundt på , og .

har du prøvet både at indsætte f.eks 1,5 og 1.5 ?
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 11:15 #4
Du siger noget.... Tjekker lige.
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 11:18 #5
Tror det har noget med det at gøre, for nu kan den ikke indlæse filen... Hvordan får jeg liiiige løst det?
Avatar billede necro655 Nybegynder
27. maj 2005 - 11:20 #6
sorry..jeg er ikke så god til php..men du kunne jo for at teste hardcode dine værdi som du putter i databasen..for at se om det er det.
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 11:28 #7
Altså indsætte dem direkte - uden om scriptet - eller hvad mener du?
Avatar billede 7th Praktikant
27. maj 2005 - 12:13 #8
Hvordan ser prisformatet ud i variablen $linie[6]? Det virker lidt mærkeligt at du bruger substr, for umiddelbart fjerner du jo de første 4 tegn, måske kunne det være problemet.
Avatar billede necro655 Nybegynder
27. maj 2005 - 12:24 #9
jeg mente dog med script..men 7th har ret..jeg have ik lige set at du fjener nogle chars fra linie6..hvorfor gør du det ?
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 12:30 #10
Den fil, der importeres kommer fra et C5 bogføringsprogram, der automatisk skriver 'Kr. ' altså fire tegn, som jeg fjerner.

Nu hvor jeg sidder her og skriver det, så tror jeg da faktisk, at det er det, der går galt - jeg får lavet variablen om til en tekststreng og ikke et tal... Prøver lige at tjekke det.
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 12:33 #11
Jeps - det var det. Problemet blev løst sådan her:

    mysql_query("TRUNCATE TABLE boerneboeger");
    while(!feof($data)) {
        $linie = explode(";", fgets($data));
        $pris = substr($linie[6],4);
        $fpris = str_replace(',','.',$pris);
        mysql_query("INSERT INTO boerneboeger (titel,beskrivelse,forfatter,sidetal,udgivet,varenr,pris) VALUES ('$linie[0]', '$linie[1]',  '$linie[2]', '$linie[3]', '$linie[4]', '$linie[5]', '$fpris')");
    }
    fclose($data);
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 12:36 #12
Hvem har fortjent point?
Avatar billede 7th Praktikant
27. maj 2005 - 13:35 #13
Dig selv :)
Avatar billede steenolsen1 Nybegynder
27. maj 2005 - 14:14 #14
Ok - tak for hjælpen alligevel :-)
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