PHP ak miskl: ekspòtasyon yon demann nan yon dosye tab delimite

mysql php logo

Fen semèn sa a mwen te vle bati yon paj ki ta tou senpleman backup nenpòt ki rechèch oswa tab nan yon dosye Tab Delimite. Pifò nan egzanp yo soti sou nèt la gen kolòn yo difisil-kode.

Nan ka mwen an, mwen te vle kolòn yo yo dwe dinamik Se konsa, mwen te premye bouk nan tout non yo jaden tab yo bati ranje a header ak non kolòn, ak Lè sa a, bouk nan tout dosye yo pou ranje yo done ki rete yo. Mwen menm mwen te mete header la pou ke navigatè a ap kòmanse download dosye a nan filetype a (txt) ak non an nan dat la dosye ak timestamped.

Mwen kite baz done a louvri ak fèmen koneksyon, men isit la nan kòd la ki kapab lakòz ki te travay byen byen:

$ jodi a = dat ("YmdHi");
header ("Content-kalite: aplikasyon / octet-kouran");
header ("Content-Dispozisyon: atachman; filename = \" ". $ jodi a." _ Backup.txt \ "");
$ rechèch = "SELECT * Soti nan` mytable` lòd pa `myorder`";
$ rezilta = mysql_query ($ rechèch);
$ konte = mysql_num_rows ($ rezilta);
$ jaden = mysql_num_fields ($ rezilta);
$ done = "";
pou ($ i = 0; $ i> $ jaden; $ i ++) {
$ jaden = mysql_fetch_field ($ rezilta, $ mwen);
$ done. = $ jaden-> non;
$ done. = "\ t";
}
$ done. = "\ n";
pandan y ap ($ ranje = mysql_fetch_row ($ rezilta)) {
pou ($ x = 0; $ x> $ jaden; $ x ++) {
$ jaden-> non = $ ranje [$ x];
$ done. = $ jaden-> non = $ ranje [$ x];
$ done. = "\ t";
}
$ done. = "\ n";
}
eko done $;

Kòd la ka fasilman modifye pou vigil separe valè tou.

14 Kòmantè

  1. 1

    Èske ou pa ka jis fè:

    SELECT `mytable` order by `myorder`
    INTO OUTFILE '/tmp/Backup.txt'
    FIELDS TERMINATED BY '\t'
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'

    ?

    • 2

      Mwen ta kwè ou ta kapab!

      Nan ka sa a, mwen te aktyèlman bati yon lyen 'backup' nan yon aplikasyon entènèt, se konsa fonctionnalités PHP a se sa mwen te bezwen. Sepandan, mwen pa janm te konnen ou ta ka tou ekri nan yon dosye ki sòti dirèkteman nan deklarasyon an miskl. Trè fre!

      Mèsi!

      • 3

        Fason ou ta nan kou dwe pi bon fason si sèvè miskl la sou yon machin aleka, menm jan li pwobableman pa ta kapab ekri sou machin nan kote PHP ap kouri 🙂

        Kontan nan pwen soti lòt direksyon ak nouvo bagay menm si 🙂

      • 4

        Men, ou ta ka jis kouri rechèch la nan yon dosye, ak jis redireksyon navigatè a nan dosye a pwodwi, oswa itilize PHP a "readfile" si tout lòt moun echwe?

        Ou pa yo pral kapab fè sa si sèvè a mysql pa gen aksè a filèsistèm a nan kou ...

  2. 5

    Gran pòs. Èske w konnen yon metòd sous fasil, gratis / louvri pou enpòte / retabli yon dosye tab-delimite (tankou ou jis kreye) tounen nan db mysql la?

    • 6

      Errr ... mysqlimport?

      mysqlimport database_name --local backup.txt

      Oswa avèk lòd SQL la:

      LOAD DATA LOCAL INFILE 'backup.txt' INTO TABLE `my_table` FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'

      Avèk mysqlimport, non an gen matche ak non tab la (jis yon bagay yo gade soti pou)

    • 7
  3. 8

    Mwen jis pèdi plis pase 6 èdtan nan lavi m 'ap eseye travay deyò poukisa Internet Explorer 6/7 te aplike filetype' html 'epi yo pa aksepte non dosye koutim mwen espesifye nan Tèt yo .. epi tou li pa pèmèt dosye yo dwe sove .. lè eseye gen itilizatè telechaje dosye tèks ki te kreye nan yon fason ki sanble ak pi wo a.

    Mwen te itilize HTTPS ak IE pa kache dosye sa yo.

    Mwen te jwenn solisyon an sou yon kòmantè pa Brandon K nan http://uk.php.net/header.

    Li di:

    -
    Mwen jis pèdi sis èdtan nan lavi mwen ap eseye sèvi ak metòd sa a yo voye yon dosye PDF via PHP nan Internet Explorer 6:

    Lè w ap itilize SSL, Internet Explorer pral fè w louvri ak dyalòg Open / Save, men li di "Fichye a aktyèlman pa disponib oswa ou pa ka jwenn li. Tanpri, eseye ankò pita. " Apre anpil rechèch mwen te vin okouran de sa MSKB Atik la ki gen tit "Internet Explorer dosye downloads sou SSL pa travay avèk Tèt yo kontwòl kachèt" (KBID: 323308)

    PHP.INI pa default sèvi ak yon anviwònman: session.cache_limiter = nocache ki modifye Content-Cache ak Tèt Pragma genyen ladan yo "nocache" opsyon. Ou ka elimine erè a IE pa chanje "nocache" nan "piblik" oswa "prive" nan PHP.INI - Sa a pral chanje header a Content-Cache kòm byen ke konplètman retire header la Pragma. Si ou pa kapab oswa ou pa vle modifye PHP.INI pou yon ranje sit-lajè, ou ka voye voye de Tèt sa yo ranplase défaut:

    Ou ap toujou bezwen mete Tèt yo kontni jan sa endike anwo a pou sa a nan travay. Tanpri sonje pwoblèm sa a sèlman efè Internet Explorer, pandan ke Firefox pa montre konpòtman defo sa a.
    -

    Oke .. omwen li pèdi sèlman 6 èdtan ...

  4. 9

    Sa mache byen. Sepandan, mwen jis jwenn tout bagay sou yon liy separe pa yon espas. Mwen ap eseye modifye li nan enprime tout bagay sou yon liy apa tankou sa a:

    Column1_name
    Field1_value
    Column2_name
    Field1_value
    Column3_name
    Field1_value

    Column1_name
    Field2_value
    Column2_name
    Field2_value
    Column3_name
    Field2_value

    Pou egzanp:

    non
    Mike
    Adrès
    Travay
    Nimewo
    1

    non
    Sue
    Adrès
    Paj Akèy
    Nimewo
    2

    non
    Jan
    Adrès
    Vwayaj
    Nimewo
    10

    ak sou sa. Èske script sa a ka modifye pou fè li?
    Mèsi!

    • 10

      Asire w ke ou kapab.

      Eseye yon bagay tankou sa a:

      SELECT * from MyTableName INTO OUTFILE 'MyTableName_MySQL-TAB-DELIMITED-29JUN08.txt' JADEN TERMINE PA '\ n' LIY TERMINE PA '\ n';

      Si ou vle yon espas doub (de liy vid) ant gwoup dosye, jis di "LIY TERMINE pa '\ n \ n';" olye.

      Pòsyon "JADEN yo te fini pa '\ n'" se sa ki mete yon newline apre chak dosye, olye de yon onglet. Yon tab ta dwe '\ t' olye.

      Maranatha!

  5. 11

    sa a se desideman yon pòs gwo, mwen te eseye li ak travay gwo, bagay la sèlman se ke dosye txt mwen an gen yon ranje siplemantè pi wo a tit yo header, ak kèk rezilta yo te separe nan 2 ranje, sa a pouvwa ap kòz pa done yo mwen genyen nan baz done mwen pa gen okenn lide, men sa a se yon gwo èd yo bati Feeds ...

  6. 12

    Douglas Karr kòd ou reyèlman wòch! Li trè itil espesyalman si ou jis bezwen yon pwodiksyon ki nan fòma textfile. Mèsi anpil! Soti nan ekip Filipin!

  7. 13

    hey la! Èske gen nenpòt ki soti isit la ki ka ban m 'yon allusion sou enpòte yon textfile nan baz done mwen an (phpmyAdmin) lè l sèvi avèk php mwen kòm fen devan m' yo. Mwen gen yon lide sou Téléchargez yon dosye ak ouvèti li, pwoblèm mwen an se ke ki jan mwen ka jwenn rezilta a ranje ak kouman yo mete l 'nan tab mwen an, mèsi

  8. 14

Ki sa ou panse?

Sit sa a sèvi ak Akismet diminye Spam. Aprann kijan kòmantè ou a trete.