Gå til innhold

Import fra Google Sheets gir feil tegnsetting


Anbefalte innlegg

Hei!
Jeg bruker denne koden for å importere en fil fra Google Sheets til MySQL

<?php
//set the connection variables
$hostname = "";
$username = "";
$password = "";
$database = "";
$filename = "min-csv-fil";

//connect to mysql database
$connection = mysqli_connect($hostname, $username, $password, $database) or die("Error " . mysqli_error($connection));

mysqli_query($connection, "TRUNCATE TABLE `min-tabell`");

// open the csv file
$fp = fopen($filename,"r");

//parse the csv file row by row
while(($row = fgetcsv($fp,"500",",")) != FALSE)
{
    //insert csv data into mysql table
    $sql = "INSERT INTO Pristabell (Produkt, Pris, Rabattkr, Rabattprosent, Lagerstatus, Butikk, TAGS) VALUES('" . implode("','",$row) . "')";
    if(!mysqli_query($connection, $sql))
    {
        die('Error : ' . mysqli_error($connection));
    }
}
fclose($fp);

//close the db connection
mysqli_close($connection);

?>

Problemet er at tegnsettingen blir veil når dataene vises. Alle æ,ø og å blir noen rare tegn.

Tabellen er satt til UTF8_general_ci

 

Kan noen hjelpe meg? :-)

 

 

Lenke til kommentar
Videoannonse
Annonse

 

 

Kan noen hjelpe meg? :-)

 

 

Jeg tror det hjelper hvis du forklarer hva du mener med "når dataene vises" også ... mener du i mysql-admin, i en webside/php eller noe annet? 

 

Aah, sorry. Prøver igjen :-)

Hvis jeg importerer CSV-filen manuelt via PHPMyAdmin, så er tegnsettingen riktig, både i PHPMyAdmin og på nettsiden. Altså vises æ,ø og å riktig

Importerer jeg CSV-filen via scriptet over så vises æ,ø og å feil, både i PHPMyAdmin og på nettsiden.

Lenke til kommentar

Antar det har noe med tegnsettet på filen vs. hva importen forventer. Hva slags format kan du lagre Gdocs i?

 

Fant denne; https://makandracards.com/makandra/595-dumping-and-importing-from-to-mysql-in-an-utf-8-safe-way

 

"Do not do this, since it might screw up encoding:

mysql -u username -p database < dump_file # this is bad

Better do:

mysql -uroot -p --default-character-set=utf8 database

mysql> SET names 'utf8'

mysql> SOURCE utf8.dump"

Lenke til kommentar

Det scriptet henter selve CSV-filen, så det er ikke en fil jeg lagrer selv.

Google dokumentet er en fil som oppdateres 2 ganger i timen, og inneholder priser fra div nettbutikker. 

Poenget er at det scriptet skal hente de prisene automatisk inn i databasen. 

Lenke til kommentar

Greit nok men du må prøve å matche formatet på filen som skal importeres til det som mysql importrutinen forventer. Så enten må du endre formatet (ANSI, UTF-8 etc.) som Gdocs lagrer i eller så må du angi formatet på importfilen fra Gdocs for mysql importrutinen. Det var det jeg prøvde å indikere med det jeg skrev.

 

Selvfølgelig forutsatt at det er der problemet ligger, noe jeg antar ut fra egen erfaring med tilsvarende problemstilling i andre sammenhenger.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...