Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 25 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok NapísalOffline : 17.07.2012 20:30

Dobry den,

ako mam prosim importovat CSV súbor do MySQL databazy?

Vytvoril som v databaze tabulky ale neviem ako tam dostat data z CSV?

Dakujem.


Offline

Čestný člen
Čestný člen
Import CSV do MySQL

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.07.2012 21:07

Ak ide o jednorázové importovanie, tak phpmyadmin, alebo adminer (alebo čokolvek iné) umožňujú import z CSV.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 17.07.2012 21:54

Phpmyadmin tam o tom viem ale ako vlozim tie spravne stlpce z CSV do presnej tabulky v databaze?

D.


Offline

Čestný člen
Čestný člen
Import CSV do MySQL

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 18.07.2012 18:39

Akože nič v zlom, ale keby si si na skúšku exportoval nejakú tabuľku do CSV a potom importoval, tak by si zistil, ako na to.
Rovnako som to urobil ja teraz - pri importe z CSV sa nepoužívajú žiadne názvy stĺpcov, proste sa len importujú dáta. Tabuľke dá nejaký generický názov (napr. table 1), stĺpcom tiež (COL 1 aťd.).
Ak budeš importovať do už existujúcej tabuľky s pripravenými stĺpcami a stĺpce v CSV budú sedieť, tak ti ich importuje správne.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 19.07.2012 20:57

Ano, to viemm vsimol som si to v Phpmyadmine.

Ako to ide prosim poriesit cez PHP, z weboveho rozhrania?

Neviem presne ako ma vypadat PHP a ako to ma celkom fungovat.

Dakujem.


Offline

Čestný člen
Čestný člen
Import CSV do MySQL

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 19.07.2012 22:16

Vieš aká je štruktúra CSV? Ak nie, tak si ho otvor, zistíš. Ak hej, tak myslím, že musíš vedieť, ako tie dáta uložiť.
PHP má niekoľko funkcií na prácu s csv, námatkovo napr. http://php.net/manual/en/function.fgetcsv.php, ale spracovanie csv je naozaj jednoduchá záležitosť.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 20.07.2012 11:02

Štrukuru CSV poznam ale neviem ako na cely princip funkcii.

Na webe by som chcel nacitat CSV a zapisat do databazy.

1. Musim mat domena.sk/import.php - kde bude moznost pridania suboru CSV

2. Dalej neviem ako na to

Dakujem.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 20.07.2012 11:28

Na PHP.net stačí scrollovať nižšie a nájdeš toto:

Kód:
function csv_file_to_mysql_table($source_file, $target_table, $max_line_length=10000) {
    if (($handle = fopen("$source_file", "r")) !== FALSE) {
        $columns = fgetcsv($handle, $max_line_length, ",");
        foreach ($columns as &$column) {
            $column = str_replace(".","",$column);
        }
        $insert_query_prefix = "INSERT INTO $target_table (".join(",",$columns).")\nVALUES";
        while (($data = fgetcsv($handle, $max_line_length, ",")) !== FALSE) {
            while (count($data)<count($columns))
                array_push($data, NULL);
            $query = "$insert_query_prefix (".join(",",quote_all_array($data)).");";
            mysql_query($query);
        }
        fclose($handle);
    }
}


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 20.07.2012 11:38

Ano, je tam toho viac ale ked som skusil aj tento kod kopirovat do php a potom nacitat cez browser tak nic.

Dakujem.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 20.07.2012 11:44

Ak si to iba nakopíroval do .php suboru a spustil tak samozreme sa nic nestalo...
pod funckiu treba pridať:

Kód:
mysql_connect('lcoalhost', 'root', 'pass') or die(mysql_error());
mysql_select_db('nazov_db');
csv_file_to_mysql_table('cesta/suboru', 'nazov_tabulky');


Do tela funckie mozes pridat este riadok, do if aby si videl či sa vobec dostal do podmienky
Kód:
echo "Súbor sa úspešne načítal";


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 20.07.2012 12:28

Kód:
mysql_connect('lcoalhost', 'root', 'pass') or die(mysql_error());
mysql_select_db('nazov_db');
csv_file_to_mysql_table('...........................................', 'nazov_tabulky');



......... tu ma byt cesta k CSV? (ked tam dam CSV tak ostane cista obrazovka a ked tam dam php tak vypise subor sa nacital ale v DB nic nieje)

Dakujem.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 20.07.2012 12:48

Takže, testoval som to a tu je vysledok:

Kód:
<?php

function csv_file_to_mysql_table($source_file, $target_table, $max_line_length=10000) {
   if (($handle = fopen("$source_file", "r")) !== FALSE) {
      echo "pridane";
      $columns = fgetcsv($handle, $max_line_length, ",");
      foreach ($columns as &$column) {
         $column = str_replace(".","",$column);
      }
      $insert_query_prefix = "INSERT INTO $target_table (".join(",",$columns).")\nVALUES";
      while (($data = fgetcsv($handle, $max_line_length, ",")) !== FALSE) {
         while (count($data)<count($columns))
            array_push($data, NULL);
         $query = "$insert_query_prefix (".join(",",quote_all_array($data)).");";
         mysql_query($query);
      }
      fclose($handle);
   }
}

function quote_all_array($values) {
   foreach ($values as $key=>$value)
      if (is_array($value))
         $values[$key] = quote_all_array($value);
   else
      $values[$key] = quote_all($value);
   return $values;
}

function quote_all($value) {
   if (is_null($value))
      return "NULL";

   $value = "'" . mysql_real_escape_string($value) . "'";
   return $value;
}

mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('a_webdev');
csv_file_to_mysql_table('subor.csv', 'menu');

?>


subor.csv:
Kód:
id,name,url
1,nazov,url/nazov
2,nazov2,url/nazov2


Tabuľka musí obsahovať rovnaké názvy stĺpcov ako je definované v súbore csv.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 23.07.2012 19:28

V DB mam tabulky presne take iste ako su v CSV a v PHP vypise "Pridane" ale realne v DB nic nieje importovane.

v DB mam tabulky:

Cena
Polozka

v CSV mam v jednom stlpci cena a druhom stlpci Polozka. Pod tym mam data, pod polozkou a pod cenou.

Kde robim moznu chybu?

D.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 23.07.2012 22:06

Uprav query:
Kód:
mysql_query($query) or die(mysql_error());


Ako máš oddelené hodnoty v csv?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 24.07.2012 10:20

Teraz vypise: pridaneNo database selected

V CSV mám oddelovac pola : a oddelovac textu ;

Dakujem.


Offline

Čestný člen
Čestný člen
Import CSV do MySQL

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 24.07.2012 10:24

elo píše:
No database selected
A od nas chces pomoct s touto hlaskou, pretoze si bezradny, alebo preto, ze si lenivy? Po precitani hlasky ti ani len nenapadlo, co moze znamenat? Google ti nevyplul ani jedno riesenie? Ani si sa neskusil zamysliet, co robia jednotlive riadky v kode, ktory si skopiroval?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 24.07.2012 10:31

Uprav mysq_connect() a mysql_select_db() podľa svojho serveru... a v databáze musíš vytvoriť tabuľku a jej meno dať potom do tej funkcie...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 25.07.2012 12:05

Dobry den,

uz som to upravil, chyba bola v nazve tabulky.

Teraz hlasi:

pridaneYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';cislo,;;odberatel;;,;;dodavatel;;,;;typ;;,;;polozka;;,;;mnozstvo;;,;;cena;;;' at line 1

Mrzi ma, ze niekto to berie v zlom ale keby som to vedel, nepytam sa.

Tuto chybu hore si viem prelozit a myslim si, ze chyba bude niekde v CSV ale tam mam ako som pisal : a ;

Dakujem za pomoc.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 25.07.2012 12:06

nahrad to ciarkami


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 25.07.2012 12:13

Uz vazne neviem kde robim chybu:

pridaneYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cislo,,,odberatel,,,dodavatel,,,typ,,,polozka,,,mnozstvo,,,cena,) VALUES ('20' at line 1


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 25.07.2012 12:20

DeiForm píše:
subor.csv:
Kód:
id,name,url
1,nazov,url/nazov
2,nazov2,url/nazov2



Pozri si štruktúru a porovnaj to so svojim


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 25.07.2012 13:38

CSV:

cislo_fa,odberatel,dodavatel,typ,polozka,mnozstvo,cena (v jednej bunke)

2012258,Firma,T-Com,25,5,2,258 (v druhej bunke, hned pod prvou)

PHP som upravil takto:

Kód:
csv_file_to_mysql_table('11.csv', 'cislo_fa', 'dodavatel', 'odberatel', 'polozka', 'mnozstvo', 'cena', 'typ');


Kde prosim robim chybu?


Offline

Čestný člen
Čestný člen
Import CSV do MySQL

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 25.07.2012 18:36

Píše ti, že máš chybu v SQL dotaze.
Toto je časť tvojho SQL dotazu:
Kód:
'cislo,,,odberatel,,,dodavatel,,,typ,,,polozka,,,mnozstvo,,,cena,) VALUES ('20' at line 1

máš pocit, že sa tak správne zapisujú hodnoty do databázy? Nevidíš tam chybu?







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.11.09
Prihlásený: 21.05.20
Príspevky: 195
Témy: 75
Príspevok Napísal autor témyOffline : 25.07.2012 19:56

malo by to byt takto:

Kód:
'cislo,odberatel,dodavatel,typ,polozka,mnozstvo,cena,) VALUES ('20' at line 1


ale ako to docieliť?

Ď.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.08.09
Prihlásený: 08.07.15
Príspevky: 169
Témy: 46
Príspevok NapísalOffline : 25.07.2012 20:01

Ja už neviem ako ti to mám napísať, alebo ti tumám napísať celú aplikáciu na tu aj s inputom a komplletným spracovaním alebo čo...

Použitie funckie ktorú máš je:

Kód:
csv_file_to_mysql_table('subor.csv', 'menu');


Kde subor.csv -> názov súboru ktorý chcše importovať
a menu -> názov tabuľky do ktorej to dávaš.

A nepíšem to tu prvý krát...


Odpovedať na tému [ Príspevkov: 25 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. import dat do mysql

v Ponuka práce

2

964

15.03.2009 18:24

Spirit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Import XML do MySQL pomocou PHP

v PHP, ASP

1

451

30.10.2015 8:17

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. databaza .csv

v Ostatné programy

2

695

19.12.2007 15:51

Mandy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Export do CSV

v PHP, ASP

15

1493

13.03.2015 16:31

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prevod xml do csv

v HTML, XHTML, XML, CSS

1

1142

29.03.2008 20:55

Triminka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Joomla a CSV Improved

v Redakčné systémy

5

1014

25.05.2009 20:09

MKI-Miro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Export FB fans to csv

v Sociálne siete

0

264

24.09.2014 8:58

mio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Cislo ako string v CSV

v PHP, ASP

2

637

23.06.2008 11:55

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. oscommerce - problem s csv importom

v Redakčné systémy

0

525

18.04.2007 21:11

scooby Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP: Kodovanie pri vytvarani .csv

v PHP, ASP

2

610

22.08.2011 10:36

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel - .csv subor uprava formatu

v Ostatné programy

2

1020

22.06.2011 14:12

buco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. data z formularu do .csv

v PHP, ASP

2

494

23.01.2009 11:25

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zle kodovanie pri vkladani .csv do databazy

v Databázy

2

880

04.02.2008 19:07

eiger33 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. STEP to STL konverzia(alebo MEG,CSV)

v Grafické programy

0

445

10.04.2011 15:06

MAREK17 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. I/P: Luxusny USB rozbocovac Club3D CSV-1541

v Predám

0

289

19.04.2018 16:46

Ľubo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. P: Splitter DisplayPortu Club3D CSV-6400, zľava 80 %

v Predám

2

631

20.09.2019 13:21

SCRAPPER Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra