PHP жана MySQL: Суроону табулатура менен бөлүнгөн файлга экспорттоо

mysql php логотиптери

Ушул дем алыш күндөрү мен каалаган суроо же таблицаны Табулатура менен бөлүнгөн файлга камдык көчүрмө түзө турган баракча кургум келди. Желеге чыккан мисалдардын көпчүлүгүндө колонкалар катуу коддолгон.

Менин жагдайымда, тилкелер динамикалуу болушун кааладым, ошондуктан адегенде колонна аттары менен баш сабын түзүү үчүн бардык таблица талааларынын аталыштарын айланып чыгып, андан кийин калган маалымат катарлары үчүн бардык жазууларды карап чыгууга туура келди. Ошондой эле, браузер файлдын датасы жана убакыт белгиси менен файл түрүндө (txt) файл жүктөөнү баштай тургандай кылып баш койду.

Мен берилиштер базасын ачуу жана жабуу байланышын калтырып кеттим, бирок натыйжада жакшы иштеген код:

$ бүгүн = дата ("YmdHi");
header ("Мазмун түрү: application / octet-stream");
header ("Content-Disposition: attachment; filename = \" ". $ today." _ Backup.txt \ "");
$ query = "SELECT * FROM` mytable` order by `myorder`";
$ result = mysql_query ($ query);
$ count = mysql_num_rows ($ натыйжасы);
$ талаалары = mysql_num_fields ($ натыйжасы);
$ data = "";
үчүн ($ i = 0; $ i> $ талаалары; $ i ++) {
$ field = mysql_fetch_field ($ result, $ i);
$ data. = $ field-> name;
$ data. = "\ t";
}
$ data. = "\ n";
while ($ row = mysql_fetch_row ($ result)) {
үчүн ($ x = 0; $ x> $ талаалары; $ x ++) {
$ field-> name = $ row [$ x];
$ data. = $ field-> name = $ row [$ x];
$ data. = "\ t";
}
$ data. = "\ n";
}
echo $ data;

Кодду оңой эле үтүр менен ажыратылган баалуулуктар үчүн өзгөртүүгө болот.

14 Comments

  1. 1
    • 2

      Сиздин колуңуздан келет деп ойлойм!

      Бул учурда, мен веб-тиркемеде "камдык көчүрмө" шилтемесин куруп жаткам, андыктан PHP иштеши мага керек болду. Бирок, мен сиз файлга MySQL операторунан түздөн-түз жаза алаарыңызды эч качан билген эмесмин. Абдан сонун!

      Рахмат!

      • 3

        Сиздин жолуңуз, албетте, MySQL сервери алыскы машинада болсо, эң мыкты ыкма болмок, анткени PHP иштеп жаткан машинага жаза албай калмак 🙂

        Башка багыттарды жана жаңы нерселерди белгилөөгө кубанычтамын 🙂

      • 4

        Бирок сиз суроону файлга иштетип, түзүлүп калган файлга браузерди багыттасаңыз же PHPдин "окуу файлын" колдонсоңуз болот?

        Албетте, mysql сервери файл тутумуна кире албаса, муну аткара албайсыз ...

  2. 5

    Сонун билдирүү. Табулатура менен бөлүнгөн файлды (сиз жаңы эле жараткан сыяктуу) импорттоонун / калыбына келтирүүнүн оңой, акысыз / ачык булагы ыкмасын mysql dbге кайра билесизби?

    • 6

      Хата ... mysqlimport?

      mysqlimport database_name --local backup.txt

      Же SQL буйругу менен:

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

      Mysqlimport менен файлдын аталышы столдун аталышына дал келиши керек (бир нерсени байкап көрүү керек)

    • 7
  3. 8

    Эмне үчүн Internet Explorer 6/6 'html' файлдык түрүн колдонуп жаткандыгын жана аталыштарда көрсөтүлгөн менин жеке файл аттарымды кабыл албаганымды жана ошондой эле файлдардын сакталышына жол бербегенимди аныктоо үчүн өмүрүмдүн 7 сааттан ашык убактысын жоготтум. Жогоруда көрсөтүлгөндөй жол менен түзүлгөн тексттик файлдарды колдонуучуларга жүктөөгө аракет кылуу.

    Мен HTTPS колдонгом жана IE бул файлдарды кэштебейт.

    Мен Брэндон К жазган комментарий боюнча чечимди таптым http://uk.php.net/header.

    Ал айтат:

    -
    PDF файлды PHP аркылуу Internet Explorer 6га жөнөтүү үчүн, мен төмөнкү ыкманы колдонуп, өмүрүмдүн алты саатын жоготтум:

    SSLди колдонгондо, Internet Explorer Ачуу / Сактоо диалогун сунуштайт, бирок андан кийин “Файл учурда жеткиликтүү эмес же табылбай жатат. Сураныч, кийинчерээк дагы аракет кылып көрүңүз. ” Көп изденүүдөн кийин мен MSKB макаласынын “SSL аркылуу жүктөлгөн Internet Explorer кэшти көзөмөлдөө аталыштары менен иштебейт” деген макаласын билдим (KBID: 323308)

    PHP.INI демейки шартта, мындай орнотууну колдонот: session.cache_limiter = "nocache" параметрлерин камтыган Content-Cache жана Pragma аталыштарын өзгөртүүчү nocache. IE катасын PHP.INI-деги "nocache" -ди "public" же "private" деп өзгөртүү менен жок кылсаңыз болот - бул Content-Cache аталышын өзгөртүп, Прагма башын толугу менен алып салат. Эгерде сиз PHP.INI сайтын жалпы оңдоо үчүн өзгөртө албай жатсаңыз же каалабасаңыз, анда демейки шарттардын үстүнөн жазуу үчүн төмөнкү эки аталышты жөнөтсөңүз болот:

    Мунун иштеши үчүн, сиз дагы эле жогорудагыдай мазмундун аталыштарын орнотушуңуз керек болот. Сураныч, бул көйгөйдү Internet Explorerге гана таасир этет, ал эми Firefox бул кемчиликтерди көрсөтпөйт.
    -

    Жок дегенде ... ал 6 гана саат жоготту ...

  4. 9

    Бул жакшы иштейт. Бирок, мен бардыгын бир сызыкта боштук менен бөлүп алам. Баарын өзүнчө сапка чыгаруу үчүн аны өзгөртүүгө аракет кылып жатам:

    Column1_name
    Field1_value
    Column2_name
    Field1_value
    Column3_name
    Field1_value

    Column1_name
    Field2_value
    Column2_name
    Field2_value
    Column3_name
    Field2_value

    Мисалы:

    ысым
    майк
    орду
    иш
    сан
    1

    ысым
    сот тарабынан куугунтуктоо
    орду
    үй
    сан
    2

    ысым
    ЖАКАН жазган Жакшы Кабар
    орду
    саякаттоо
    сан
    10

    жана башка. Бул сценарийди өзгөртүү үчүн өзгөртсө болобу?
    Рахмат!

    • 10

      Албетте болот.

      Мындай нерсени байкап көрүңүз:

      MyTableNameден OUTFILE'ге SELECT * 'MyTableName_MySQL-TAB-DELIMITED-29JUN08.txt' АЯКТАЛГАН ТАЛААЛАР '\ n' АЯКТАЛГАН САПТАР '\ n';

      Эгерде сиз жазуу топторунун ортосунда эки орун (эки бош сызык) болгуңуз келсе, анда "СОТТОРУ '\ n \ n' АЯКТАЛГАН САПТАР" деп айтыңыз ордуна.

      Ар бир жазуудан кийин өтмөктүн ордуна жаңы тилкени жайгаштырган "FIELDS BERMINATING '\ n'" бөлүгү. Кыстырма анын ордуна '\ t' болмок.

      Мараната!

  5. 11

    Бул сөзсүз түрдө сонун пост, мен аны сынап көрдүм жана мыкты иштейм, бир гана нерсе, менин txt файлымда баш аталыштардын жогору жагында кошумча сап бар, жана кээ бир натыйжалар 2 катарга бөлүнүп калган, буга мендеги маалыматтар себеп болушу мүмкүн Менин маалыматтар базамда эч кандай идея жок, бирок бул канал түзүүгө чоң жардам ...

  6. 12

    Douglas Karr сиздин кодуңуз чындыгында эле күчтүү! Текстфайл форматындагы натыйжага муктаж болсоңуз, бул өзгөчө пайдалуу. Чоң рахмат! Филиппиндер командасынан!

  7. 13

    эй ал жерде! Бул жерден мага php'ди менин алдыңкы орун катары колдонуп, тексттик файлды маалымат базасына (phpmyAdmin) импорттоо жөнүндө ишара бере турган адам барбы? Файлды жүктөө жана аны ачуу жөнүндө менин оюм бар, менин көйгөйүм катардын натыйжасын кантип алсам болот жана аны өз таблицаларыма кантип киргизем, рахмат

  8. 14

    Сураныч, кимдир бирөө баш аталыштарындагы http баш сабын кантип алып салууну айтып бере алат

Эмне деп ойлойсуң?

Бул сайт спам азайтуу Akismet колдонот. Сиздин комментарий маалымат кандайча иштелишин Үйрөнүү.