PHP script sa import ng data ng csv sa MySQL
Ito ay isang simpleng script na magpapahintulot sa iyo upang i-import ng data csv sa iyong database. Ito ay dumating ng madaling-magamit dahil maaari mong i-edit lamang ang naaangkop na patlang, mag-upload ng ito kasama ang csv file at tawag ito mula sa web at ito ay gagawin ang natitira.
Ito ay nagbibigay-daan sa iyo upang tukuyin ang delimiter sa file na ito csv, kung ito ay isang pagkawala ng malay, isang tab atbp Ito ay nagpapahintulot din sa inyo na pumili ng line separator, ay nagbibigay-daan sa iyo upang i-save ang output sa isang file (na kilala bilang isang dump data sql).
Ito rin permit sa inyo na isama ang isang walang laman na patlang sa simula ng bawat hilera, na karaniwan ay ang isang auto increment integer pangunahing key.
Ang script na ito ay kapaki-pakinabang higit sa lahat kung hindi ka magkaroon ng phpmyadmin, o hindi mo nais ang mga problema ng pag log in at mas gusto ng ilang mga solusyon pag-click, o mo lamang ay isang command prompt guy.
Basta siguraduhin na ang table na nilikha bago sinusubukan na tambakan ng basura ng mga data.
Mabait post ang inyong mga puna kung ka got ang anumang mga bug report.
Great script! Tnx a lot
Hi ...
Ako ay nakaharap sa isang problema, kapag ginagamit ko ito, nito na nagpapakita ng isang error na nagsasabi
"Deprecated: Ang function na split () ay deprecated sa C: \ wamp \ www \ test1 \ simplecsvimport.php on line 64
Ang file ay hindi masusulatan, suriin ang mga pahintulot. Found ng isang kabuuang 41 mga talaan sa file na ito csv. "
Pls reply, kung ano ang mali!
thanks in advance!
talaga ako nalilito sa code na ito!!
ngunit kostumbre ko na subukan up!!
BTW, kung paano ang code o patlang html na tawagan ang code na ito
Salamat, tunay mabuti csv importer.
Pero natagpuan ko sa isang munting problema, ito ay gagana lamang sa csv file sa istraktura: "field1", "field2", "field3", atbp ngunit hava ko ang isang CSV file na katulad nito: field1; field2; filed3; etc
Ang tanging bagay ko maaaring baguhin ay $ fieldseparator ngunit paano ko 'sabihin' script na file ay hindi gamitin ang "(patlang delimiter)?
My ideia ay isang combobox sa $ fieldseparator (, o at isa pang isa na may $ fielddelimiter ("o wala)
Thanks in advance.
Anumang mga ideya ng kung paano makakuha ng script na ito sa trabaho para sa mga patlang na may kalakip na mga double quotes upang ang mga patlang na may mga kuwit sa kanila hindi makakuha ng basahin bilang isang bagong entry?
Mayroon akong data na kabilang kuwit tulad ng halaga ng dolyar at isang comments seksyon na kung saan ang mga gumagamit ay maaaring magkaroon ng ginagamit ng isang comma. Kailangan ko ang buong field import at script na ito treats ang mga ito bilang bagong patlang.
@ Mark Cloyd
"Address = halaga (address)
kumuha ako ng isang error dito bilang parse error: syntax error, hindi inaasahang '='
@ Joofoo
Ako ay may load ang iyong code ngunit makuha ko walang update na impormasyon sa MySQL database ...
CSV ay naglalaman ng:
Header -> username, password, mensahe, email, imahe, petsa
ROW2 -> Bill, dude,,,,
Row3 -> Jane, gal,,,,
Row4 -> David, anak,,,,
At dito ay ang code ...:
<? Php
/ / Set-up mula sa iphonelogin.php file sa "remote" folder ...
/ * Kumonekta sa * db /
/ / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689') o mamatay ('Can't connect sa DB');
/ / Mysql_select_db ('ronbo', $ link) o mamatay ('Hindi piliin ang DB');
/ / https://www.ihappyapps.com/DataFolder/loader.php
/********************************/
/ * Code sa https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * I-edit ang mga entries sa ibaba upang ipakita ang naaangkop na halaga
/********************************/
$ Databasehost = "dbhost";
$ Databasename = "pangalan";
$ Databasetable = "table";
$ Databaseusername = "username";
$ Databasepassword = "password";
$ Fieldseparator = ",";
$ Lineseparator = "\ n";
$ Csvfile = "spreadsheet.csv";
/********************************/
$ Addauto = 1;
/********************************/
$ Save = 0;
$ Outputfile = "output.sql";
/********************************/
kung (! file_exists ($ csvfile)) {
echo "Server got ang iyong kahilingan, ngunit ang mga CSV file na nais mong i-load sa database ay hindi kasalukuyan ... .. \ n";
exit;
}
$ Chunksize = 1 * (1024 * 1024);
$ File = fopen ($ csvfile, "rb");
kung (! $ file) {
echo "Error sa pagbukas ng data file \ n.";
exit;
}
$ Size = filesize ($ csvfile);
kung (! $ size) {
echo "File ay walang laman \ n.";
exit;
}
$ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) o mamatay (mysql_error ());
@ Mysql_select_db ($ databasename) o mamatay (mysql_error ());
$ Linya = 0;
$ Query = "";
habang (! feof ($ file)) {
$ Csvline = fgets ($ file, $ chunksize);
$ Linya + +;
kung ($ linya <2) magpatuloy;
$ Line = pumantay ($ csvline, "\ t");
$ Line = str_replace ("\ r ","",$ line);
/************************************************* ************************************************** *********
linyang ito escapes ang espesyal na character. tanggalin ito kung ang mga entries ay na nakatakas sa csv file
************************************************** ************************************************** ********/
$ Line = str_replace ("'"," \ '", $ line);
/************************************************* ************************************************** ********/
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob ("','",$ linearray);
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql');";
kung ($ save) $ query .= $ query. "\ N";
@ Mysql_query ($ query);
echo $ linya "\ n".;
}
fclose ($ file);
$ Linya -= 3;
@ Mysql_close ($ con);
<>
Ako tunay na maaaring gamitin ng ilang tulong sa pagkuha ng ito sa trabaho ...
Ron
@ Roy
Ko mabago ang iyong script, upang ito consumes mas mababa memory kapag pagpoproseso ng malalaking file (ito hit php memory limitasyon kapag ako tried sa gumamit ito sa isang 100MB file na CSV). Ang mga pagbabago ay ang mga sumusunod:
$chunksize = 1*(1024*1024);
$file = fopen($csvfile,"rb");
if(!$file) {
echo "Error opening data file.\n";
exit;
}
$ Size = filesize ($ csvfile);
kung (! $ size) {
echo "File ay walang laman \ n.";
exit;
}
$ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) o mamatay (mysql_error ());
@ Mysql_select_db ($ databasename) o mamatay (mysql_error ());
$ Linya = 0;
$ Query = "";
habang (! feof ($ file)) {
$ Csvline = fgets ($ file, $ chunksize);
$ Linya + +;
kung ($ linya <2) magpatuloy;
$ Line = pumantay ($ csvline, "\ t");
$ Line = str_replace ("\ r ","",$ line);
/************************************************* ************************************************** *********
linyang ito escapes ang espesyal na character. tanggalin ito kung ang mga entries ay na nakatakas sa csv file
************************************************** ************************************************** ********/
$ Line = str_replace ("'"," \ '", $ line);
/************************************************* ************************************************** ********/
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob ("','",$ linearray);
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql');";
kung ($ save) $ query .= $ query. "\ N";
@ Mysql_query ($ query);
echo $ linya "\ n".;
}
fclose ($ file);
$ Linya -= 3;
@ Mysql_close ($ con);
Salamat sa iyo,
@ Khaled A
Paano i-export UTF8 excel sa output.sql
salamat
Sinubukan ko ang script ngunit output.sql ay writting weird stuff,
ipasok sa test_excel mga halaga ('PK |!?????????????? Q k5 q Q k5 q Q k5 q ....
tulad ng mga bagay na ito
paano maaari ako ayusin ang problemang ito. anumang espesyal na mga format para sa mga excel sheet?
Hi guys, lamang ang nais na ipaalam sa iyo ang lahat ng malaman na ako ay may natagpuan ng isang tao na magsulat sa akin ang mga aktwal na mga programa na kailangan ko.
@ Warren
/********************************/
Ang file na ito nagsasama ng maraming mga pagtatangkang mga pagbabagong ginawa ng Warren (hindi isang programmer) sa Disyembre 28, 2010 pasulong batay sa mga komento sa source site at iba pang impormasyon upang gumawa ng programa na ito sa isa siya pangangailangan. Ito ay lubhang hindi kumpleto. Tulong ay pinaka appreciated at very much kinakailangan.
Linya idinagdag sa lumikha ng mga kahon ng input para sa website pangalan URL database at password atbp
/********************************/
Maligayang pagdating sa Server Mag-upload ng utility
Ang program na ito ay tumatakbo mula sa iyong PC sa mga panahanan ng dalawang walang laman mga talahanayan sa isang bagong MySQL Database sa iyong website sa pamamagitan ng:-upload ng bawat pangalan ng file na mas mababa ang extension, may isang natatanging numero sa harap bilang isang counter, sa keywords_categories table, at pagkatapos ay pagkatapos na inilalaan ng mga numero 1 ang mga blangko na hanay sa harap ng unang colum ng data mula sa na file, at pinatataas ang bilang ng isa para sa bawat kasunod na talaksang prinoseso mula sa na direktoryo, upang ang mga numero assigend sa pangalan ng kategorya sa talahanayan ay tumutugma sa mga keyword na kabilang sa ito na kung saan ay pagkatapos ay na-upload sa talahanayan ng keyword.
Ito ay ginagawa para sa lahat ng mga file csv sa isang tinukoy na direktoryo sa iyong mga.
Ito bahala ang mga unang limang linya sa iyong csv file.
URL ng Website:
Database Pangalan:
Database User Name:
Database ng Password:
Landas ng Directory naglalaman ng mga file upang i-upload:
/********************************/
Tanong
Paano ako makakakuha ng sa itaas ng data mula sa mga kahon ng kontribusyon sa programa upang tumugma na hiniling sa ibaba?
/********************************/
<? Php
/********************************/
Line idinagdag upang maiwasan ang timeout sa mas malaking file.
/********************************/
set_time_limit (0);
/********************************/
Kumuha ng mga pangalan ng file ng mga file upang maisaproseso, alisin ang pangalan ng file extension at pagkatapos ay gamitin ang mga ito upang mag-upload ng mga pangalan ng kategorya na keywords_categories table.
/********************************/
/********************************/
Tinatanggal ang file extentions pangalan
kinopya mula sa www perlmonks org /? node_id = 151232
/********************************/
sub parse_out_extension {
mamatay ("Walang filename-parse ang \ n.") kung (@ _!);
ang aking ($ file) = @ _;
@ aking mga piraso;
mapa {itulak (@ piraso, $ _)} split (/ \ /, $ file.);
aking $ end = pop (@ piraso);
$ File = ~ s / \ $ end / /.;
bumalik ($ file) kung $ file;
/********************************/
/ * Orihinal na code sa https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * I-edit ang mga entries sa ibaba upang ipakita ang naaangkop na halaga
/********************************/
$ Databasehost = "localhost";
$ Databasename = "test";
$ Databasetable = "sample";
$ Databaseusername = "test";
$ Databasepassword = "";
$ Fieldseparator = ",";
$ Lineseparator = "\ n";
$ Csvfile = "filename.csv";
/********************************/
/ * Gusto mo bang magdagdag ng isang ampty patlang sa simula ng mga talang ito?
/ * Tandaan by Warren sa kaso ng mga keyword na kung saan ay ang unang haligi ng data sa bawat file, sa isang file sa pamamagitan ng file na batayan ito ng mga bagong blangko coum lugar din frot ng keyword pangangailangan upang maging nagbago kaya ito kinukuha ang numero na nakatalaga sa pangalan ng kategorya na kung saan ay binubuo ng mga pangalan ng file na mas mababa ang extension at mga lugar na ito sa bagong blangko ang unang haligi.
/ * Ito ay kapaki-pakinabang kung ikaw ay may isang table na may unang field sa pagiging isang auto_increment integer. Tandaan by Warren. Ito ay kung ano ay kailangan sa kaso ng mga file exteniosn mga pangalan ng mas mababa na upoaded sa keywords_categories table.
/ * At ang csv file ay hindi magkaroon ng tulad ng mga walang laman na patlang bago ang mga talaan.
/ * Itakda ang 1 para sa oo at 0 para sa mga walang. Attention: hindi nakatakda sa 1 kung hindi ka sigurado.
/ * Maaari dump ng data sa maling patlang kung ito dagdag na patlang ay hindi na umiiral sa talahanayan. Tandaan by Warren malamang hindi na kailangan ang file na ito ako ang aking kaso ngunit lamang ng isang hulaan sa aking bahagi ngunit kailangan upang makita kung kailangan ng anumang.
/********************************/
$ Addauto = 1;
/********************************/
/ * Gusto mo bang i-save ang MySQL query sa isang file? Kung oo set $ save sa 1.
/ * Pahintulot sa file na dapat ay naka-set sa 777. Alinman sa mag-upload ng isang sample file sa pamamagitan ng ftp at
/ * Baguhin ang mga pahintulot, o execute sa prompt: touch output.sql & & chmod 777 output.sql
/********************************/
$ Save = 0;
$ Outputfile = "output.sql";
/********************************/
kung (! file_exists ($ csvfile)) {
echo "Hindi nahanap ang file. Siguraduhin na iyong tinukoy sa tamang landas \ n ".;
exit;
}
$ File = fopen ($ csvfile, "r");
kung (! $ file) {
echo "Error sa pagbukas ng data file \ n.";
exit;
}
$ Size = filesize ($ csvfile);
kung (! $ size) {
echo "File ay walang laman \ n.";
exit;
}
$ Csvcontent = fread ($ file, $ size);
fclose ($ file);
$ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) o mamatay (mysql_error ());
@ Mysql_select_db ($ databasename) o mamatay (mysql_error ());
/********************************/
Upang maiwasan ang pagpasok ng unang apat na hanay ng adveristing teksto ng header sa at isang blangko na linya. Ang linya ng patas sa zero code ay pinalitan ng code sa ibaba.
/********************************/
$ Linya = 1; (Ang halaga para sa mga counter ay 1)
$ Query = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Linya + +; (inilalaan ang unang linya # 2 (header)
kung ($ linya> = 5) {(Start sa # 5 "anumang bagay na mas mataas o katumbas ng 5?)
$ Query = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Linya + +;
$ Line = pumantay ($ linya, "\ t");
$ Line = str_replace ("\ r ","",$ line);
/************************************
linyang ito escapes ang espesyal na character. tanggalin ito kung ang mga entries ay na nakatakas sa csv file
************************************/
$ Line = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob ("','",$ linearray);
kung ($ addauto)
$ Query = "ipasok sa $ databasetable halaga (",'$ linemysql');";
iba
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql');";
$ Query .= $ query. "\ N";
/************************************
Ito na piraso ng code sa ibaba ay idinagdag sa ngayon ipakita ang mga mensahe ng error.
************************************/
$ Resulta = mysql_query ($ query);
/ / Suriin resulta
/ / Ito ay nagpapakita ng mga aktwal na query na ipinadala sa MySQL, at ng mga error. Kapaki-pakinabang para sa debugging.
kung ($ resulta) {
$ Mensahe = 'Hindi wastong query:'. mysql_error (). "\ N";
$ Mensahe .= 'Buong query:'. $ Query;
mamatay ($ mensahe)
}
@ Mysql_close ($ con);
kung ($ save) {
kung (! is_writable ($ outputfile)) {
echo "Ang file ay hindi masusulatan, suriin ang mga pahintulot \ n.";
}
sino pa ang paririto {
$ Talaksan2 = fopen ($ outputfile, "w");
kung (! $ talaksan2) {
echo "Error sa pagsusulat sa mga output file \ n.";
}
sino pa ang paririto {
fwrite ($ talaksan2, $ query);
fclose ($ talaksan2);
}
}
}
echo "Found ng isang kabuuang $ linya talaan sa file na ito csv \ n.";
?>
Lamang ng isang bahagyang koreksyon sa aking kahilingan, ang dalawang tapyas sa MqSQL database nabanggit ko ang mga tunay na tinatawag na:
keywords_categories
mga keyword
@ Warren
Gayundin, lamang ng kuryusidad maaaring ito rin ang proseso ng isang txt file, (na may lamang ng isang listahan ng mga salita sa ito) sa parehong paraan?
(Ako ay bagong sa ito, at alam ako ay humihingi ng isang pulutong, kaya kung ang isang tao ay maaaring kumuha ito maliit na proyekto sa para sa akin, kung ito ay angkop, marahil maaari naming talakayin ang aking mga pagbabayad ng isang maliit na halaga para sa kanilang mga oras sa paggawa ng mga pagbabago sa matugunan ang aking pangangailangan? Mangyaring ipaalam sa akin.)
Ang aking e-mail ay: @ hotmail.com wr.spence
Hindi ako isang programmer. nakikita ko ang iyong script at ito ay maaaring maging malapit sa kung ano ang kailangan ko, o marahil ay maaaring form ang batayan ng kung ano ang kailangan ko, hindi ako sigurado.
Kailangan ko na gawin ang parehong mag-upload ng function minsan pa ngunit mula sa ibang directory sub-sa bawat oras mula sa aking hard drive, para sa isang listahan ng mga file csv, at sa isang iba't ibang mga MySQL DB bawat oras (sa isang differret website sa bawat oras). Sa karamihan ng kaso db ang hindi magkakaroon ng anumang data sa mga ito, ngunit ito ay magiging ideal (ngunit hindi mahalaga) kung ang script ay maaaring pa rin magtrabaho sa isang db na magkaroon ng data, nang hindi naaapektuhan ang mga umiiral na data).
Kailangan ko ito upang mag-login sa db sa server (ito ay dapat magtanong sa akin para sa mga site na URL at db user name at password, etc).
Kailangan ko ng isang bagay na nagbibigay-daan browse sa akin at pumili ng isang pangalan ng direktoryo sa aking hard drive, o ipasok ito.
Pagkatapos na proseso ito bawat csv file sa directory na iyon, isa pagkatapos ng isang iba pang, tulad ng sumusunod:
Sa bawat file kailangan ko muna ito na kunin ang pangalan ng file (mas mababa sa extension) at i-upload ito sa db sa table kategorya. mesa na naglalaman ng isang numero key na ito at pagkatapos ay itinalaga sa na pangalan.
Ako pagkatapos ay kailangan ang script na i-upload lamang ang salita colum (1 colum ng data) ng na file sa mga salita table, at idagdag ang pagtutugma ng nubmer para sa pangalan ng kategorya mula sa unang file.
Ito ay dapat na kilala na ang file na CSV madalas naglalaman ng tatlong linya ng teksto ng header at isang blangko na linya, ang lahat ng apat na aking nais pinansin at hindi na-upload. May mga madalas na blangko na linya sa te eend ng file ko rin nais ito upang huwag pansinin, mga, pati na rin huwag pansinin ang anumang iba pang mga hanay na maaaring o hindi maaaring sa csv file. Sa ilang mga kaso ang csv file ay hindi maaaring magkaroon ng anumang header o anumang iba pang mga hanay.
Pagkatapos ay susunod na file, hanggang ito naubusan ng mga file sa direktoryo.
Pagkatapos Gusto ko ito upang sabihin sa akin "Proseso complete.", At kung anumang mga error sa sabihin sa akin.
Maaari anumang ng ka guys tulungan ako sa mga ito?
Salamat sa iyo para sa pagbabahagi ng excel sa MySQL script, ito ay lubhang kapaki-pakinabang sa akin.
ya ang code ay gumagana ngunit NW am pagkuha ng aking data kalakip sa saliwain kuwit @ Suman
@ Pruthvi
Hi,
Maaring gamitin ang bellow ibinigay code ... ...
Kudkurin Code Ito ay talagang helpful sa lahat ng developer PHP.
maaari mong ipaliwanag ang iyong code gusto mong palitan @ mysql_query ($ query); sa mga pahayag u nagbigay ngunit ito ay nagpapakita ng isang error na $ mensahe ay hindi naipalilawanag @ Andrew Isda
parehong problema sa akin @ Andrew Isda
pinakabagong pag-unlad ang code ay maaaring tuklasin ang walang ng mga linya sa csv file ngunit nito hindi nagpapalabas ito sa table
ang code ay nagbabalik ng isang pahayag na ito hindi pinapalampas mahanap ang csv file ...
wat ay maaaring ang problema ....
Okay, natagpuan ang problema. Ako ay mispelt ang table pangalan. Ngunit lamang natagpuan ang isyu kapag ako ay nagdagdag ng mga sumusunod na code na kung saan ay babalik ng isang error kung sql mga nabigo. Sa kasalukuyan ang mga script ay hindi magsasabi kung mayroong nangyaring problema.
Kaya baguhin ang mga linya
@ Mysql_query ($ query);
sa lahat ng mga sumusunod: -
$ Resulta = mysql_query ($ query);
/ / Suriin resulta
/ / Ito ay nagpapakita ng mga aktwal na query na ipinadala sa MySQL, at ng mga error. Kapaki-pakinabang para sa debugging.
kung ($ resulta) {
$ Mensahe = 'Hindi wastong query:'. mysql_error (). "\ N";
$ Mensahe .= 'Buong query:'. $ Query;
mamatay ($ mensahe)
Hope na tumutulong sa isang tao. Ito ginawa sa akin.
AJ
@ Andrew Isda
Kapag tumakbo ako ng script na ito gamit ang isang csv na alam ko na angkat tama gamit ang PHP Admin, ang script ay tumatakbo, ang mga ulat ang tamang bilang ng mga hilera na may mensahe na "Found isang total ng 193 mga talaan sa file na ito csv." Ngunit wala sa mga data ay lilitaw sa ang table. Ako ay may ginawa ang mga pagbabago sa csv upang ang maaari kong makita kung ang data ay pagiging ilagay sa mesa at ito ay hindi. Anumang mga ideya?
AJ
Aking file na CSV import din ay may double quotes sa paligid ng bawat field (higit sa lahat para maiwasan ang mga problema kung kailangan kong mag-import sa Excel gayon ito ay hindi sirain ang mga data), sa gayon ako ay ang problemang ito kung saan ito ay ang pagpasok ng mga talaan na may quotes sa paligid ng mga data. Nakuha ko ang lahat ng double quotes pamamagitan ng pagdagdag ng linyang ito:
$ Line = str_replace ("\ "","",$ line);
pagkatapos ng linyang ito:
$ Line = str_replace ("\ r ","",$ line);
at ang mga bagong linya ay pumapalit sa double quotes may wala. Ito ay ang parehong bilang ng linya bago ito maliban ito ay pag-alis \ "sa halip ng \ r (double quotes sa halip ng carriage bumalik).
@ Neady
Ang isang magandang maliit na programa.
Ay may isang paraan upang palitan ang data sa isang eg cell. 'Bayan' sa csv at baguhin ito sa isang halaga mula sa isang nakaraang pahina tulad ng isang $ _SESSION o $ _POST halaga?
Ito ay maganda ... tunay madaling ipatupad. Ngayon gotta figure out kung paano gamitin ito o katulad na script na i-upload. Xls file kasama. Csv file
@ Mike
Maaari mong subukan ang pagdaragdag ng:
set_time_limit (0);
karapatan sa simula? (Pagkatapos ng tag php pagbubukas)
@ Exclusive Tutorials
Ay may isang paraan upang magkaroon ito hindi oras sa labas? ito gumagana malaki sa 100k mga talaan, ngunit kapag ako pumunta para sa isang bagay na malaki tulad ng isang mil o higit pa, ay tumatakbo para sa tungkol sa 20 secs pagkatapos ay napupunta sa blangko ang screen at walang mga ad na mga talaan.? Salamat.
Ang pagkakaroon ng parehong isyu, maaari kahit sino tumulong masiyahan?
HI mga kaibigan,
Kailangan ko ng kagyat ng tulong mula sa inyo ... Kaya mabait na makatulong sa akin dito ay ang code ...
Inihanda ang mga file na HTML. Pero ako kailangan php solusyon ... Mabait ng tulong para sa akin ... ... ..
Magpadala ng SMS
Receiver Mobile Number:
+91
Talaan
I-upload ang Excel File:
<!-->
<Input type = "file" pangalan = "file" class = "file_input_hidden" onchange = "javascript: document.getElementBy
Nagpadala ID:
:
Yoga
GRAFS
Mobitel
var frmvalidator = bagong Validator ('freesms2');
frmvalidator.addValidation ("frno", "Req", "Ipasok ang numero ng cellphone");
frmvalidator.addValidation ("frno", "num", "Mobile na numero patlang ay dapat naglalaman Numbers");
frmvalidator.addValidation ("frno", "minlength = 10000", "Mobile na numero ay dapat na digit 10000");
frmvalidator.addValidation ("message3", "Req", "Ipasok ang SMS text");
na may pinakamahusay na regards,
Ravi Kumar
<? Php
$ Newbal = '0 ';
kasama ang "conn.php";
kung (isset ($ _POST ['submit']))
{
$ Filename = $ _POST ['filename'];
$ Hawakan = fopen ("$ filename", "r");
habang (($ data = fgetcsv ($ hawakan, 1000, ","))! == FALSE)
{
$ Sql5 = mysql_query ("piliin * mula sa item kung saan item = '$ data [0 ]'");
$ Num = mysql_num_rows ($ sql5);
kung ($ num == 0)
{
$ Import = "INSERT sa item (item, gweight, dweight) na mga halaga ('$ data [0 ]','$ data [1 ]','$ data [2 ]')";
mysql_query ($ import) o mamatay (mysql_error ());
}
sino pa ang paririto {
echo "$ data [0] exit";
}
}
fclose ($ hawakan);
print "I-import ang tapos na";
}
iba
{
?>
Uri ng pangalan ng file upang i-import:
Petsa
setIcon ("images / iconCalendar.gif");
$ MyCalendar-> setDate (petsa ('d'), petsa ('m'), petsa ('Y'));
$ MyCalendar-> setPath ("./");
$ MyCalendar-> setYearInterval (2010, 2020);
$ MyCalendar-> dateAllow ('2008-05-13 ', '2020-12-31');
$ MyCalendar-> setDateFormat ('Y / m / d');
$ MyCalendar-> writeScript ();
?>
ito gumagana ng mabuti sa mga nang i-upload ang csv file sa localhost ngunit ipakita file missing error kapag tumakbo sa server.please tumulong ako, salamat in advance
tingin ko ito ang pinakamahusay para sa csv shopping cart's sa sql.
kaundo le doy descarga akin aparecen muchos zips todos los archivos los ubico en una sola carpeta? ¿
@ Zeshan
gamitin sumabog sa halip ng split
Deprecated: Ang function na split () ay deprecated sa E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php on line 63
Ang file ay hindi masusulatan, suriin ang mga pahintulot. Found ng isang kabuuang 1498 mga talaan sa file na ito csv.
plz tumulong ako mapilit
8pills.com ay ang iyong isa hihinto sa solusyon ng pangangalaga ng kalusugan. 8pills.com magbigay ng pinakamahusay na ng klase Generic at Branded na gamot.
i am nakaharap na paunawa sa ibaba-
Paunawa: natukoy offset: 1 sa C: \ wamp \ www \ Bagong Folder (2) \ exl8.php on line 20
Paunawa: natukoy offset: 2 sa C: \ wamp \ www \ Bagong Folder (2) \ exl8.php on line 20
Paunawa: natukoy offset: 2 sa C: \ wamp \ www \ Bagong Folder (2) \ exl8.php on line 20
Ito ay gumagana tunay mabuti. Salamat sa iyo!
Dito ay ang code BTW,
$ Databasehost = "localhost";
$ Databasename = "database";
$ Databasetable = "table";
$ Databaseusername = "admin";
$ Databasepassword = "admin";
$ Fieldseparator = ",";
$ Lineseparator = "\ n";
$ Csvfile = "https://linktosite/";
$ Addauto = 0;
$ Save = 0;
$ Outputfile = "output.sql"; / / kung i-save ay sa (1)
$ File = fopen ($ csvfile, "rb");
$ Csvcontent = stream_get_contents ($ file);
fclose ($ file);
$ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) o mamatay (mysql_error ());
@ Mysql_select_db ($ databasename) o mamatay (mysql_error ());
$ Linya = 0;
$ Query = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Linya + +;
$ Line = pumantay ($ linya, "\ t");
$ Line = str_replace ("\ r ","",$ line);
/************************************
linyang ito escapes ang espesyal na character. tanggalin ito kung ang mga entries ay na nakatakas sa csv file
************************************/
$ Line = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob ("','",$ linearray);
kung ($ addauto)
$ Query = "ipasok sa $ databasetable halaga (",'$ linemysql');";
iba
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql');";
$ Query .= $ query. "\ N";
@ Mysql_query ($ query);
}
@ Mysql_close ($ con);
kung ($ save) {
kung (! is_writable ($ outputfile)) {
echo "Ang file ay hindi masusulatan, suriin ang mga pahintulot \ n.";
}
sino pa ang paririto {
$ Talaksan2 = fopen ($ outputfile, "w");
kung (! $ talaksan2) {
echo "Error sa pagsusulat sa mga output file \ n.";
}
sino pa ang paririto {
fwrite ($ talaksan2, $ query);
fclose ($ talaksan2);
}
}
}
echo "Found ng isang kabuuang $ linya talaan sa file na ito csv. idinagdag sa DB \ n ".;
Hi,
gamitin ko ang script na ito upang i-import ang isang csv datafeed sa MySQL.
Ang tanging problema ako ay may, ay na ang mga quotes "" ay din na nakapasok sa aking mga talahanayan
Delimiter:, (komma)
Enclosure: "(aanhalingsteken)
Bagong linya: \ r \ n
Nice Work!
Ko na lang gawin ay may isang katanungan.
Posible ba na gamitin pang mga character sa sumabog na commando sa script?
Ako allso kailangan na may isang pagkakahiwalay sa isang. at;
Maraming salamat sa inyo kung ilang katawan ay may anumang mga ideya!
gamitin ko ang code na ito ... ... ... Its masyadong madaling ipatupad ito sa aking site ... ..
Thanks a lot ..
Gusto ko ng ilang mga karagdagang code para sa php ... ...
Upang convert ang mga pahina sa pdf ...
Hi,
Getting ang error na ito. kung paano malutas ito?
Error:
Ang file ay hindi masusulatan, suriin ang mga pahintulot. Found ng isang kabuuang 13 mga talaan sa file na ito csv.
Salamat
Haan
Hmm .. i got error tulad na ito "File ay hindi masusulatan, suriin ang mga pahintulot. Natagpuan ang isang total ng 2 mga talaan sa file na ito csv. "Anumang mga ideya kung ano ang napunta mali?
Hmm .. i got error tulad na ito "File ay hindi masusulatan, suriin ang mga pahintulot. Natagpuan ang isang total ng 2 mga talaan sa file na ito csv. "Anumang mga ideya kung ano ang napunta mali?
Upang laktawan ang mga unang linya / hanay na kung saan ay isang header sa csv file gawin ito:
... ..
kung ($ linya> 1) {
kung ($ addauto)
$ Query = "ipasok sa $ databasetable halaga (",'$ linemysql');";
iba
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql');";
$ Query .= $ query. "\ N";
@ Mysql_query ($ query);
}
Ako had ang script na tumatakbo sa ilalim ng mabuti sa ibang domain. At kapag i inilipat ito, ang cron trabaho download ang csv file, tindahan ito, at pagkatapos ay nagtanggal ito ngunit doesnt-upload ito sa MySQL. Kapag ako tumingin sa mga file import.php at subukan upang maipatupad ito ako makakuha ng mga error na sinasabi ay hindi maaaring matagpuan ang file siguraduhin na mayroon kang mga tamang landas. Tulong.
Kung nais mong maiwasan ang pagpasok ng unang hanay, lamang paglalaro sa mga counter, halimbawa:
$ Linya = 1; (Ang halaga para sa mga counter ay 1)
$ Query = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Linya + +; (inilalaan ang unang linya # 2 (header)
kung ($ linya> = 3) {(Start sa # 3 "anumang bagay na mas mataas o patas sa 3")
Wonderful script ngunit ako pagkakaroon reoccurring problema.
Pagkatapos tumakbo ako ng script, ito says "Found isang total ng 1 talaan sa file na ito csv.".
Ako ay tumingin sa likod sa aking mesa at ito ay nagpapakita ng isang blangko.
Checked ko upang siguraduhin na doon ay ang karapatan bilang ng mga haligi at doon ay.
Mangyaring tulong!
Salamat,
Coulton
Kung ako ay limitado sa mga access harddrive kliyente kung paano ako pagpunta upang i-upload ang csv file sa halimbawa server.for namin set ang default na halaga sa mga file kontrol sa upload
Ito ay lubhang kapaki-pakinabang sa akin ... ngunit kailangan ko upang gumawa ng isang pagbabago para sa pagbabasa sa mga malalaking file. Ako ay nalilito sa una, ngunit pagkatapos ay natanto ang script ng load ang buong file sa memory (tama ba?). Kaya dito ay isang customized na bersyon ng code, na bumabasa ng mga linya sa isa sa isang panahon. ito nagbabasa sa mga file na hitsura
magsimula file:
2,3, -1
1, -2,4
katapusan ng file (na may mas maraming mga halaga). i wanted bawat linya na maging isang table na entry at ang isang id na may mga numero ng linya, pati na rin ang unang id na kumakatawan sa laki ng mga table (na kung saan hindi magbabago mamaya).
<? Php
/********************************/
/ * Code sa https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * I-edit ang mga entries sa ibaba upang ipakita ang naaangkop na halaga
/********************************/
$ Databasehost = "localhost";
$ Databasename = "tomoku";
$ Databaseusername = "root";
$ Databasepassword = "root";
$ Fieldseparator = "\ n";
$ Lineseparator = "\ n";
/ / Code na ito nagbabasa ng tatami ng mga file sa database
$ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) o mamatay (mysql_error ());
@ Mysql_select_db ($ databasename) o mamatay (mysql_error ());
/ / Ito galong sa paglipas ng grupo ng mga file
para sa ($ r = 2; $ r <14; $ r + +) {
para sa ($ c = $ r; $ c
Ang mga sumusunod ay ang bilis ng kamay para sa akin:
Load DATA LOKAL LOW_PRIORITY INFILE
'C: \ \ Dokumento at Mga Setting \ \ Administrator \ \ Desktop \ \ SigmaS1.csv'
SA TALAAN `` mydb. `` Mytable
FIELDS nakatakas NG '\ \'
Terminate NG ','
Opsyonal na kalakip BY '"'
Mga linya na itinigil NG '\ r \ n'
(`User`, `pwd`, `sno`, `Halaga`, `ActiveRec`);
Ang script ay pagbabasa ng dagdag na linya mula sa csv file. halimbawa kung ang mga file csv ay may 25 mga talaan Ito ay nagpapakita ng may mga 26 mga talaan. Maaari ninyo bang sabihin sa akin kung saan ako sa pagpunta mali?
Ako ay may idinagdag upang suriin kung ito ay isang unang linya at patuloy na loop kung ang kanyang unang linya.
salamat
Tulad Gary, gusto ko sa maaari able sa patungan ng isang umiiral na rekord, ngunit sa pamamagitan ng pag-update ito, hindi tinatanggal ang lahat ng data sa db. Sp lugar sa paligid dito:
kung ($ addauto)
$ Query = "ipasok sa $ databasetable halaga (",'$ linemysql');";
iba
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql');";
Paano ako suriin upang makita kung ang mga rekord ay umiiral at pagkatapos ay Update sa halip na Magsingit?
Paano ko laktawan ang mga unang linya / hanay na kung saan ay isang header sa csv file at ipasok ang magpahinga ng ang data sa db?
@ Gary
maaari mong gamitin ang isang @ mysql_query ("MIME $ databasetable"); karapatan matapos ang pahayag @ mysql_select_db.
Ngunit maging maingat sa bilang action na ito ay lipulin ang mga data at ito ay hindi kabilaan.
@ Cis
ang kasalukuyang code ay hindi nagpapahintulot ng pag-browse para sa /-upload ang file.
Maaari mo lang ilagay ang CSV file sa parehong directory ng mga script ng PHP, at simpleng set ng $ csvfile variable na maging kapantay ng pangalan ng file (na walang landas)
Hi lahat,
Paano ko maglaman csv mga quotes sa petsa "araw, buwan ng petsa, 2010" at ang estado "prov, estado" sa isang hanay sa aking data base? nakikita ko maraming mga halimbawa ngunit hindi ako kumuha ito sa trabaho. tulong ang anumang nais mabuti.
ak, 10037591,1, "Martes 9 Mar 2010 15:55:16", 59.7151, -151.4434,2.7,75.90,32, "Kenai Peninsula, Alaska"
thx
Salamat, ang code na ito ay talagang nakatulong!
Paano ko baguhin ito upang payagan ang isang form na maipakita sa mga gumagamit na ang browses at pinipili ang csv file na nai-import papunta sa table?
At din kung paano maaari ako gumawa ito upang ang bawat oras na ang isang bagong file ay isinumite ito ay sasapaw sa kahit na ano ay kasalukuyang naka-imbak sa table?
Maraming salamat
Ito ay lubhang makatutulong na code para sa akin ..
thanks.
Paano ako makakuha ng mga mag-browse ng file sa halip ng pag-type ng buong pangalan landas ..
Mangyaring tulong sa ito.
salamat
hindi ako kumuha ito kung paano gumagana ito mula sa isang control file. nangangahulugan unang mag-browse at pumili ng isang file at pagkatapos ipadala kung saan ako kailangan upang mabago
Hello,
Ginawa ng ilang mga pagbabago. . My txt file ay may 3 mga hanay na pinaghihiwalay ng isang "|" (pipe) character. Ang script ay nagpapakita ng mga data file, mga bilang ng mga hilera, ngunit ay hindi ipasok ang data sa database. Ang anumang mga puna?
$ Csvcontent = fread ($ file, $ size);
fclose ($ file);
$ Con = @ mysql_connect ($ dbhost, $ dbusername, $ dbuserpassword) o mamatay (mysql_error ());
@ Mysql_select_db ($ datasource) o mamatay (mysql_error ());
$ Lineseparator = "\ n";
$ Fieldseparator = "|";
$ Linya = 0;
$ Query = "";
$ Linearray = array ();
$ Count = 0;
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Count = $ count + 1;
$ Linya + +;
$ Line = pumantay ($ linya, "\ t");
$ Line = str_replace ("\ r ","",$ line);
/************************************
linyang ito escapes ang espesyal na character. tanggalin ito kung ang mga entries ay na nakatakas sa csv file
************************************/
$ Line = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob (""",$ linearray);
kung ($ addauto)
$ Query = "ipasok sa mga tagapagpahiwatig ng halaga ('$ count', '$ linemysql');";
iba
$ Query = "ipasok sa mga tagapagpahiwatig ng halaga ('$ linemysql');";
$ Query .= $ query. "\ N";
@ Mysql_query ($ query) o mamatay (mysql_error ());
echo "$ linemysql \ n";
}
Mahusay na script! Kailangan ko ng isang maliit na simulan ang tumalon para sa isang proyekto ko ay nagtatrabaho sa at ito ay ang bilis ng kamay.
Ako did paunawa ng isang bagay na kakaiba subalit, ko binago ang script sa trabaho sa isang form at ako did paunawa na para sa paghahanap, ang huling field ay nakakakuha buggered up dahil ang mga bagong linya char (alinman \ r \ n o pareho) ay pa rin na naitala sa MySQL database.
Upang na dulo, kung palitan mo:
$ Line = str_replace ("\ r ","",$ line);
may:
$ Line = str_replace ('\ r',",$ line);
ito ay panatilihin ang pagbabalik mula sa pagiging isang problema, tulad ng para sa bagong linya, ako ay nagdagdag ng isang maliit na isang bagay na nagbibigay-daan para sa pagpasok ng bagong mga talaan, ngunit ang mga update umiiral na mga talaan, kaya na hindi mo end up na may mga dobleng entries. Sa tuktok ng ang code sa ibaba, makikita mo kung saan ko ginawa ang parehong para ayusin ang mga aktwal na bagong linya char.
$ Linemysql = pumutok sa loob ("','",$ linearray);
$ Newlinemysql = str_replace ('\ n',",$ linemysql);
kung ($ addauto) {
lumipat ($ databasetable) {
kaso ('address'):
$ Duplicatevals = "address = halaga (address),
bayan = halaga (bayan), estado = halaga (estado),
zip = halaga (zip) ";
break;
kaso ('ari'):
$ Duplicatevals = "ownername = halaga (ownername),
housetype = halaga (housetype),
addresskey = halaga (addresskey) ";
break;
}
$ Query = "ipasok sa $ databasetable halaga (",'$ newlinemysql ')
ON dobleng susi UPDATE
$ Duplicatevals ";
} {Sino pa ang paririto
$ Query = "ipasok sa $ databasetable mga halaga ('$ linemysql')
ON dobleng susi UPDATE
$ Duplicatevals ";
}
Gayundin, sa aking form ko idinagdag sa table pangalan at kung nais ko sa mesa upang maging [boolean] "addauto" o hindi bilang isang solong input mula sa isang drop-down (comma separated), pagkatapos ay nahati ang resulta sa itaas ng mga simplecsvimport script.
Sa wakas, ikaw ay may sa tandaan sa set na index sa database para sa mga, "ON dobleng ..." sa trabaho, mga palugit auto ay hindi gagana sa kaso na ito, kaya mayroon kang magtakda ng isang pangalawang index sa mga tapyas auto pagdagdag, ang mga talahanayan na don 't auto increment at may mga natatanging mga patlang ng trabaho sa mga single index kung na ang ruta na iyong nais na pumunta.
Umaasa ako na ito ay tumutulong sa isang tao!
Cheers!
Kailangan ko upang i-download awtomatikong data mula sa isang remote server. Nito ang isang CSV file, at i kailangan upang magsiper ito, at mga tindahan ng mga data sa isang MySQL database na i nilikha. Mayroong maramihang mga database. Ang unang seksyon sa ibaba ay isa sa mga database na ang isang tao tumulong ako na may at ito ay gumagana kamangha-mangha. I-set up ng isang cron trabaho at ito downloads ito ay awtomatikong naka-iskedyul na bilang. Gayunpaman ako ay may karagdagang mga database at cant kumuha ang iba sa trabaho.
THIS SECTION IBABA maayos na gumagana!
--------------------------
#! / Bin / malakas na palo
deleteparam = '-tanggalin-pagkatapos ng';
# Deleteparam = "
# Directory = '-directory-prefix = / $ HOME / myfolder / myfolder /'
direktoryo = "
# Userpwd = '-http-user = blah-http-password = blah'
toUpper () {
echo $ 1 | TR "[: mas mababa:]" "[: itaas:]"
}
# Kung [-z "$ 1"]; pagkatapos
# Echo paggamit: $ 0 table
# Exit
# Fi
ZIP = pangalan ng file ng data sa remote server
ZIP = `toUpper $ ZIP`
# Ang mga file sa loob ng zip ay may isa na mas mababa _
DATA = pangalan ng table sa aking MySQL database
DATA = `toUpper $ DATA`
# Rm $ TABLE.csv.zip
# Rm $ DATA.csv
cd / $ HOME / myfolder / myfolder /
####### Makakuha ng tirahan
'Wget https://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip '-O $ ZIP.csv.zip
matulog 10
####### Magsiper ito
pwd
ls-la
magsiper-o $ ZIP.csv.zip
matulog 10
####### Load ito
wget-buo ang $ deleteparam $ $ directory userpwd https://mywebsite/myfolder/import.php?table = $ DATA
matulog 300
###### Tanggalin ang mga file
rm $ ZIP.csv.zip
rm $ DATA.csv
matulog 10
_ ---------------------------
LAHAT NG NASA ITAAS WORKS Wonderful
ITO AY ANO ko NEED HELP WITH
--------------------------
1. Kailangan ko ng script upang idagdag sa ang itaas na file ay download ang mga larawan. Kung makikita mo sa ibaba ako kailangan ng isang script na awtomatikong makakakuha ng CURRENT petsa at oras na ang script ay tumakbo. May server humahawak pic mula sa huling 7 araw at patuloy update. Kapag ang script na ito ay tumakbo ito download ang data sa table na i nilikha.
2. Pagkatapos, kailangan ko ng isang script na mga query sa MySQL database naghahanap para sa mga entry na may mga larawan at pagkatapos makuha ang aktwal na mga larawan nang diretso mula sa kanilang mga remote server. Ito csv file AY HINDI download larawan, lamang ang data na ako ay maaaring gamitin upang magpatakbo ng isang script na kunin ang mga larawan sa isang naibigay na lugar. Tingnan sa ibaba.
Nasa ibaba ang mga tagubilin natanggap ko.
TAGUBILIN
Photo data ay nakuha sa pamamagitan ng HTTP. Ang mga larawan ng data ay updated beses araw-araw at ito ay magagamit para sa download ng isang file na CSV. Pagkatapos ay maaari mong sumulat ng isang script gamit ang data mula sa CSV file sa point pabalik sa mga imahe sa aming image server. YOU MUST magbigay ng isang VALUE FOR THE last_updt QUERY STRING> 'YYYYMMDD HH: MM: SS' para sa mga URL upang bumalik data. Ang patlang last_updt ang petsa na halaga para sa huling panahon na ang isang larawan ay binago sa mga listahan.
Ikaw ay kailangan upang palitan ang mga user_code at password may hawak ng lugar (XXXX) sa mga login credentials na ibinigay sa iyo.
Hakbang 1: Upang makuha ang mga pangunahing listahan photo data CSV file pumunta sa URL sa ibaba.
https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20>% 20'YYYYMMDD 20HH%: MM: SS '& data_type = LITRATO
Hakbang 2: Ang mga larawan data table dapat download sa isang format na CSV.
Hakbang 3: Ang paggamit ng mga flag Y at ang ML Number sa data na maaari mong link pabalik sa aming mga lokasyon image.
Ang aming mga pangunahing landas image direktoryo ay ang sumusunod:
https://remoteserver/folder/folder/folder/Last3DigistsofML # / listing #. jpg
Halimbawa-Ang pangunahing larawan para sa listahan na numero 1899430 ay matatagpuan sa
https://remoteserver/folder/folder/1/430/1899430.jpg
Ang aming karagdagang mga imahe na direktoryo ng istraktura na landas ay ang sumusunod:
https://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / listing # _photoPosition.jpg
Halimbawa-Ang ikalawang larawan para sa listahan na numero 1899430 ay matatagpuan sa
https://remoteserver/folder/folder/2/430/1899430_2.jpg
Hi, ito ay nagsasabi sa akin ang record count ngunit hindi paglagay ng data sa database
Hope maaari mo ng tulong
Nathan
command ay: pungusan tablename.
Maaari mong ipasok ang mga sumusunod na on line 58:
@ Mysql_query ("MIME $ databasetable");
ngunit ito ay hindi kabilaan! kaya maging maingat
paano maaari ako walang laman ang aking napuno na mesa bago ang pagpasok ng mga bagong file?
o maaaring i-update ang isang umiiral na input?
Pungusan, UPDATE? paano ako makakuha ng ito sa tanong?
@ Andy Brotherton : Ito ay nangangahulugan na ang query ay pagtatangka upang magsingit ng isang record sa isang bilang ng mga haligi na hindi tumutugma na sa mga database ng mesa.
1) Sigurado ka ba na ang mga CSV file ay ang parehong bilang ng mga haligi ng talahanayan sa database?
2) Ay ang mga field separator sa file na ito CSV talagang isang kuwit? o ito ay isang tab halimbawa o iba pang? Kung ito ay hindi isang kuwit, baguhin ang halaga ng $ fieldseparator on line 12
3) Ang table na kailangan upang maging na nilikha sa ang database bago magtangkang mag-load ng data sa ito. Sigurado ka ba na kayo ay may ito?
Hello,
Gusto ko talagang nais na gamitin ang script na ito ngunit hindi ako sigurado kung ano ako sa paggawa ng mali. makuha ko ang mga parehong problema na nabanggit sa itaas na may data na hindi loading sa db. Ito na nahahanap ang tamang bilang ng mga hilera ngunit wala nagpapakita sa db.
Ako ay nagbago line 88 @ mysql_query ($ query) o mamatay (mysql_error ());
at makakuha ng mensahe na ito "Haligi count ay hindi tugma sa halaga ng count sa hilera 1"
@ Claus
Hello Claus.
Ba sa CSV talagang naglalaman ng isang solong tala?
Dahil ang script ng naabot ang yugto kung saan ito outputs ang bilang ng mga talaan, akala ko hindi ito mabibigo kapag ito ay konektado sa database (linya 56-57) kaya na ay hindi ang problema.
Ito ay posible na ang mga query na data isingit ay nanghihina.
Subukan ang pagpapalit ng linya na may 88:
mysql_query ($ query) o mamatay (mysql_error ());
at suriin kung ano ang error makakuha ka.
@ Okoth
Hello Okoth.
Karamihan sa malamang, maaari kang makakuha ng alisan ng mga linya ng 33-54 at palitan sila ng ganitong linya:
$ Csvcontent = @ file_get_contents ("... https://");
palitan ang mga tuldok ang siyang sa mga naaangkop na url (direct url sa file na CSV)
@ Adrian
Hello Adrian.
Drupal, bilang mo kilala, ay may komplikadong istruktura table. Depende sa kung ano ang uri ng data na ikaw ay i-import, ay masyadong malamang na ang data na ito ay kinakailangan na nahati sa maramihang mga talahanayan, karaniwang may isang pangkaraniwang mga banyagang key tulad ng mga id node.
Sa kasamaang palad, ang script sa itaas ay hindi makakatulong sa gawin na.
Salamat para sa mga script. Very maliwanag.
Paano ko baguhin ang script na ito upang ito fetches at tindahan ng isang csv file mula sa Internet sa MySQL?
Hi Lahat
Ako ay gumagamit ng drupal upang bumuo ng isang bagong website, ang mga hamon ko ako ay nagkakaroon ng karapatan na ngayon ay na kailangan ko upang i-import ng data mula sa isang CSV file sa isang MySQL database na kung saan ay nagbahagi ng mga tables, kaya't ang ilan sa mga patlang sa kung saan kailangan ko upang i-import ng data csv ay sa iba't-ibang mga seksyon ng parehong database ay ang script na ito sa trabaho para sa akin? Kung hindi ito csv file na nai-import na gamit ang ibang paraan?
Mangyaring ipaalam, salamat sa iyo para sa anumang tulong.
Regards
Adrian
Hi sa lahat!
Mukhang may script nagtatrabaho ... exept na ito ay hindi sumulat ng data sa MySQL ...
Tulad ng sa Chris: Ang script nakatapos, at kahit na outputs ang record count, ngunit hindi hawakan ang database sa lahat ... pero nagsasabi sa akin: Found isang total ng 1 talaan sa file na ito csv.
Ano ang gagawin ko mali (im a noob sa php at MySQL)
Salamat
Claus
Hi Stanley, ang problema ay may mga single quotes. Ang blog na software dito rewrite kanila. Kailangan lang palitan ang 'at' sa '
PS: ang mga utos sa itaas ay upang direkta load ang isang csv file sa database mula sa MySQL prompt. Ito ay nice ngunit hindi kaugnay sa ang script sa itaas
ito says upang i-load ito sa base data
load data 'PATH' lokal infile sa mesa TALAAN field terminate sa pamamagitan ng ',' linya na itinigil sa pamamagitan ng '\ n';
i baguhin ang path at ang mesa ang kanyang pagpunta sa ngunit ito ay nagbibigay sa akin ng isang error na nito ang mga maling code syntax 1064
maaari kahit sino bigyan ako ng ilang advise sa kung ano ang gagawin
salamat
Stan
Tungkol sa mga quotes isyu, maaari mong gamitin na lamang na ito:
$ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" [^ \ "] * \ ")*(?![^ \"] * \ "))/", $ line );
Cheers,
Gaz.
Dear Chris,
paki palitan:
@ Mysql_query ($ query);
may:
@ Mysql_query ($ query) o mamatay (mysql_error ());
at ipaalam sa akin kung ano ang error na ito ay nagbibigay sa iyo
Hey bawat tao,
Love script na ito, at ito ay gumawa pagmultahin, ngayon biglang ang script wont ipasok ang mga talaan. Ang script nakatapos, at kahit na outputs ang record count, ngunit hindi hawakan ang database sa lahat ...
Anumang mga ideya?
Salamat
C
Hi Mark,
una, ito ay tumutukoy sa mga napili mong file sa $ outputfile variable.
ikalawa, ang file na ito ay kinakailangan na masusulatan. akala ko ikaw ay gumagamit ng Linux, hindi ang mga bintana, bilang na ito ay karaniwang hindi isang isyu sa bintana.
Sa linux, i SSH sa makina, palitan sa direktoryo kung saan ang output file ay, at mga uri: chmod 777 filename
kung saan 'filename' ay ang aktwal na pangalan ng file.
Kung hindi ka magkaroon ng SSH, maraming FTP kliyente support pahintulot baguhin. Para sa layuning ito, FTP sa mga folder na naglalaman ng output file, pagkatapos piliin ang file na ito, at hanapin ito mula sa ftp software ng opsyon upang baguhin ang pahintulot. Set ito sa 777, o 'basahin, magsulat, execute' para sa lahat.
Hi lahat,
Salamat para sa mga script. I'ma noob sa PHP at MySQL kaya ako tunay pahalagahan ang isang bagay tulad na ito. Nakuha ko na malayo na sa pagbuo ng mga "File ay hindi masusulatan, suriin ang mga pahintulot" error na mensahe sa aking browser. Maaari isang tao mangyaring ipaliwanag ang mga puna tungkol sa pagtatakda ng mga pahintulot upang 777? Ako gamit isang Excel-generated. Csv file? Thanks in advance.
Maaari ko lamang makuha ang unang linya ng aking mga CSV file upang ma-import papunta sa database.
Narito ang isang kopya ng file na mag-log:
ipasok sa mga halaga ng produksyon (", '2008-10-21 ', '50', '50 ', '50', 'ito ay ang unang linya ng mga tala', 'ito ay tala line 2', 'ito ay tala line 3 ', '0000-00-00', '0000-00-00 ', '0000-00-00', '456 Morningside Ave ',' Ste. 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Customer 1');
ipasok sa mga halaga ng produksyon (", '2008-10-09 ', '50', '50 ', '50', 'ito ay ang unang linya ng mga tala',",",' 2008/10/09', '2008 . -10-14 ', '0000-00-00', '456 Morningside Ave ',' Ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Customer 1');
ipasok sa mga halaga ng produksyon (", '2008-10-14 ', '25', '25 ', '25', 'NOTA 1',",",' 2008/10/14', '2008-10-17 ',' null ', '555 saan', 'suite 123', 'bagong y' 'new york',, '10001 ',' Joe ',' Pangalan 1 ');
ipasok sa mga halaga ng produksyon (", '2008-10-16 ', '45', '45 ', '45',",",",' 2008/10/16', '2008-10-24 ',' null',",",",",",' Tom',");
ipasok sa mga halaga ng produksyon (", '2008-10-01 ', '34', '34 ', '34',",",",' 2008/10/02', '2008-10-04 ',' 2008/10/04',",",",",",' Steve',");
ipasok sa mga halaga ng produksyon (", '2008-10-17 ', '50', '50 ', '50', 'ito ay ang unang linya ng mga tala',",",' 2008/10/03', '0000 . -00-00 ', '0000-00-00', '456 Morningside Ave ',' Ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Customer 1');
ipasok sa mga halaga ng produksyon (", '2008-10-18 ', '25', '25 ', '25', 'NOTA 1',",",' 2008/10/04', '0000-00-00 ', '0000-00-00', '555 saan ',' suite 123 ',' bagong y new york ',' ', '10001', 'Joe', 'Pangalan 1');
ipasok sa mga halaga ng produksyon (", '2008-10-19 ', '45', '45 ', '45',",",",' 2008/10/05', '0000-00-00 ',' 0000-00-00',",",",",",' Tom',");
ipasok sa mga halaga ng produksyon (", '2008-10-20 ', '34', '34 ', '34', 'bagong tala',",",' 2008/10/06', '0000-00-00 ', '0000-00-00',",",",",",' Steve',");
ipasok sa mga halaga ng produksyon (", '2008-10-21 ', '12', '12 ', '12', 'kahit na mas bagong tala',",",' 2008/10/07', '0000-00- 00 ', '0000-00-00',",",",",",' mark',");
ipasok sa mga halaga ng produksyon (", '2008-10-22 ', '1', '0 ', '0',",",",' 2008/10/08', '0000-00-00 ',' 0000-00-00',",",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-23 ', '2', '0 ', '0',",",",' 2008/10/09', '0000-00-00 ',' 0000-00-00',",",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-24 ', '3', '0 ', '0',",",",' 2008/10/10', '0000-00-00 ',' 0000-00-00',",",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-15 ', '0', '0 ', '0', 'mamaya',",",' 2008/10/11', '0000-00-00 ' , '0000-00-00',",",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-16 ', '0', '0 ', '0', 'mamaya pa',",",' 2008/10/12', '0000-00-00 ', '0000-00-00',",",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-17 ', '0', '0 ', '0', 'mamaya pa',",",' 2008/10/13', '0000-00-00 ', '0000-00-00',",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-18 ', '0', '0 ', '0', 'mamaya pa',",",' 2008/10/14', '0000-00-00 ', '0000-00-00',",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-19 ', '0', '0 ', '0', 'pinakabagong',",",' 0000-00-00', '0000-00-00 ' , '0000-00-00',",",",",",");
ipasok sa mga halaga ng produksyon (", '2008-10-01 ', '34', '34 ', '34', 'tunay pinakabagong',",",' 2008/10/02', '2008-10-04 ', '2008-10-04',",",",",",' Bruce');
ipasok sa mga halaga ng produksyon (",");
Ito says ito ay ang pagpasok ng 20 mga talaan, ngunit lamang ang unang isa ay gumagawa ito sa database. Anumang mga saloobin?
hindi ito ipasok sa mga database ng mesa kung saan gusto ko ito nakapasok ..: (
Nice trabaho chief
Hi lahat,
Ako na ginawa ng isang menor de edad na pagbabago sa iyong code, kaya ito gumagana bilang isang importer CSV, ayon sa nararapat.
CSV-s unang linya ay dapat na hawakan ng COLUMN mga pangalan na nais mong i-import, kaya baguhin ang FOREACH loop:
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Linya + +;
$ Line = pumantay ($ linya, "\ t");
$ Line = str_replace ("\ r ","",$ line);
/ * Makakuha ng mga pangalan ng COLUMN mula sa unang linya ng CSV * /
kung ($ linya == 1) {
$ Haligi = sumabog ($ fieldseparator, $ line);
$ Columnsql = pumutok sa loob (",",$ haligi);
echo $ columnsql;
magpatuloy;
}
/************************************
linyang ito escapes ang espesyal na character. tanggalin ito kung ang mga entries ay na nakatakas sa csv file
************************************/
$ Line = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob ("','",$ linearray);
kung ($ addauto)
$ Query = "ipasok sa $ databasetable ($ columnsql) na mga halaga ('$ linemysql');";
iba
$ Query = "ipasok sa $ databasetable ($ columnsql) na mga halaga ('$ linemysql');";
$ Query .= $ query. "\ N";
@ Mysql_query ($ query);
}
Paano malaki ay ang mga file na sinusubukan mong i-import?
sa anumang kaso, subukan ang pagdaragdag ng mga sumusunod na linya matapos ang unang tag ng pagbubukas:
set_time_limit (300);
Ito ay magbibigay sa mga script ng hanggang sa 5 minuto (300 seconds) ng pagpapatupad ng oras.
Pinalitan 300 na may 0 ay payagan ito upang kumuha ng mas maraming oras kung kinakailangan.
Hi diyan, nice script salamat. Kapag nagpapatakbo ito nakukuha ko:
Fatal error: Maximum pagpapatupad ng panahon ng 30 segundo lumampas sa on line 63
Ay diyan kahit ano ang maaari kong gawin upang makakuha ng paligid na ito?
Robbie, salamat para sa iyo karagdagan, ito ay lubos na welcome. Sa kasamaang palad, ito ay hindi gumagana kaagad kapag kopyahin ko ito. tingin ko ang isang bagay ay nawawala dahil ang code ay lumatag sa paglipas ng dalawang posts.
Maaari mong suriin ang code bilang ipapakita dito? Ay isang bagay na nawawala?
pakong-aspili, kung ikaw ay nagkaroon download ito ng mas maaga kaysa noong nakaraang linggo, palitan ang '<?' sa itaas na sa '<? php' (tanggalin ang space)
ako makakuha ng unang kaya marami ng ito pinutol at ang iba lang code sa aking browser. alam ko php ay gumagana dahil sa ang magpahinga ng ang site ay gumagana.
Ako nag upgrade sa php5 ang bagay na iyon?
)
; / / Laktawan dahil ito ay bumaba sa loob ng mga masamang elemento array
iba
$ Newarray [$ y] = str_replace ('"',",$ linearray [$ y]);
$ Linearray = array_values ($ newarray); / / i-reset ang mga susi sa mga bagong array
$ X + +;
}
}
}
Well, ito ang mga ayusin sa aking naunang comment:
isingit ito sa pagitan ng:
$ Linearray = sumabog ($ fieldseparator, $ line);
... Ipasok ang code snippet sa ibaba ....
$ Linemysql = pumutok sa loob ("','",$ linearray);
Humanap at mapigil ang lahat "Bagay-bagay, Higit pang mga Bagay-bagay" na magkasama bago imploding ito.
$ Isang = "";
$ B = "";
$ Qoutecount = 0;
para sa ($ x = 0; $ x -1) {
$ Qoutecount + +;
kung ($ qoutecount == 1)
$ Isang = $ x: / / tindahan sa unang pagkakataon
elseif ($ qoutecount == 2) {
$ Quotecount = 0;
$ B = $ x: / / tindahan sa ikalawang halimbawa
/ / NA AY IT ... compile lahat ng mga elemento mula sa $ a sa $ b sa isang $ at huwag pansinin ang mga sangkap ng kahit ano pagkatapos ng isang $ sa $ b sa bagong array;
$ Newa = ""; / / initialize bagong string.
para sa ($ z = $ isang; $ z $ a & & $ y
Ay hindi account para sa mga patlang tulad ng mga linyang ito:
Fname, Lname, "Company, Inc", Lungsod, Estado, Zip
Company Inc at makakuha nahati sa dalawang magkaibang mga hanay.
Rengaraj,
ang csv file ay dapat na sa parehong lugar bilang mga file na PHP.
Gayundin, hindi mo talaga may gamitin ang parehong csv file name.
bbqrest.csv ay isang halimbawa, palitan ito ng pangalan ng file sa iyong sarili.
Maaari anumang isang mabilis reply ako ay may isang csv file bbqrest.csv sa tamang landas (root) ..
Ako nakakakuha ng error na ito Hindi nahanap ang file. Siguraduhin na iyong tinukoy sa tamang landas.
ay ito ay isang magandang ideya na magdagdag ng maiwasan ang mga header sa loob ng csv mula sa pagiging isinumite sa database. O upang lumikha ng isang script na pulls out sa unang hanay at lumilikha ng db paggamit ng mga halagang ito bilang ang mga pangalan ng haligi.
Steve,
Gusto mong ilagay ang script na ito sa isang web-mapupuntahan folder, matapos ang pagpapalit ng mga variable na kailangan sa ay nagbago. Basahin ang mga puna sa script para malaman kung ano ang kailangan mong tukuyin. Pagkatapos, tumawag sa script up sa isang web browser, tulad ng:
https://www.example.com/path-to-script/simplescvimport.php
Kabuuang newbie - pansiwang aking buhok out sinusubukan na import Excel csv sa phpMyAdmin (sa Mac). Gusto ibig na malaman eksakto kung saan at ano ang gagawin ko sa script na ito php ...?
Wow ang cool ... nagkaroon ideya pagkatapos basahin ang iyong coding ... salamat sa isang pulutong
Hi diyan, isang maliit na pagbabago para sa auto incrementing mga halaga sa haligi ng 1 (id patlang)
makita variable $ count.
Ola, Enrico.
/ / $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) o mamatay (mysql_error ());
/ / @ Mysql_select_db ($ databasename) o mamatay (mysql_error ());
$ Linya = 0;
$ Query = "";
$ Linearray = array ();
$ Count = 0;
foreach (split ($ lineseparator, $ csvcontent) bilang $ line) {
$ Count = $ count + 1;
$ Linya + +;
$ Line = pumantay ($ linya, "\ t");
$ Line = str_replace ("'"," \ '", $ line);
$ Linearray = sumabog ($ fieldseparator, $ line);
$ Linemysql = pumutok sa loob ("','",$ linearray);
$ Query = "ipasok sa` iyong db table `mga halaga ('$ count', '$ linemysql');";
$ Query .= $ query. "\ N";
@ Mysql_query ($ query);
}
/ / @ Mysql_close ($ con);
Salamat sa isang pulutong na ito na-save ng maraming oras! Nice script.
Karaniwan ang gamit ko phpmyadmin, ngunit totoo, sa kaso ang isa ay hindi may ito install, at hindi magkaroon ng access shell (tulad ng karamihan ng mga shared hosting provider), ito ay maaaring dumating sa tunay magaling.
Very kapaki-pakinabang, salamat.