PHP ແລະ MySQL: ສົ່ງອອກແບບສອບຖາມໄປທີ່ Tab Delimited File

ຮູບສັນຍາລັກຂອງ phs mysql

ທ້າຍອາທິດນີ້ຂ້ອຍຢາກສ້າງ ໜ້າ ເວບທີ່ຈະ ສຳ ຮອງຂໍ້ມູນແບບສອບຖາມຫຼືຕາຕະລາງໃດໆເຂົ້າໃນເອກະສານ Tab Delimited. ຕົວຢ່າງສ່ວນໃຫຍ່ທີ່ອອກຢູ່ໃນເນັດມີຖັນທີ່ມີລະຫັດແຂງ.

ໃນກໍລະນີຂອງຂ້ອຍ, ຂ້ອຍຕ້ອງການໃຫ້ຄໍລໍາມີຄວາມເຄື່ອນໄຫວສະນັ້ນຂ້ອຍຕ້ອງໄດ້ເຊື່ອມຕໍ່ຊື່ຂອງຕາຕະລາງທັງ ໝົດ ເພື່ອສ້າງແຖວຫົວທີ່ມີຊື່ຖັນແລະຫຼັງຈາກນັ້ນໃຫ້ລວບລວມບັນທຶກທັງ ໝົດ ສຳ ລັບແຖວຂໍ້ມູນທີ່ຍັງເຫຼືອ. ຂ້ອຍຍັງໄດ້ຕັ້ງຄ່າ header ເພື່ອວ່າ browser ຈະລິເລີ່ມການດາວໂຫລດ file ໃນ filetype (txt) ພ້ອມດ້ວຍຊື່ຂອງວັນທີ file ແລະ timestamped.

ຂ້ອຍອອກຈາກຖານຂໍ້ມູນເປີດແລະປິດການເຊື່ອມຕໍ່, ແຕ່ນີ້ແມ່ນລະຫັດຜົນທີ່ໄດ້ຮັບຜົນດີ:

$ ມື້ນີ້ = ວັນທີ ("YmdHi");
header ("Content-type: application / octet-stream");
header ("Content-Disposition: attachment; filename = \" ". $ ມື້ນີ້." _ backup.txt \ "");
$ query = "SELECT * ຈາກ` mytable` ສັ່ງໂດຍ `myorder`";
$ result = mysql_query ($ query);
$ count = mysql_num_rows ($ ຜົນໄດ້ຮັບ);
$ fields = mysql_num_fields ($ ຜົນໄດ້ຮັບ);
$ data = "";
ສຳ ລັບ ($ i = 0; $ i> $ fields; $ i ++) {
$ field = mysql_fetch_field ($ ຜົນໄດ້ຮັບ, $ i);
$ data. = $ field-> ຊື່;
$ data. = "\ t";
}
$ data. = "\ n";
ໃນຂະນະທີ່ ($ row = mysql_fetch_row ($ result)) {
ສຳ ລັບ ($ x = 0; $ x> $ fields; $ x ++) {
$ field-> ຊື່ = $ ແຖວ [$ x];
$ data. = $ field-> ຊື່ = $ ແຖວ [$ x];
$ data. = "\ t";
}
$ data. = "\ n";
}
echo $ ຂໍ້ມູນ;

ລະຫັດສາມາດຖືກດັດແປງໄດ້ງ່າຍ ສຳ ລັບຄ່າທີ່ແຍກດ້ວຍເຄື່ອງ ໝາຍ ຈຸດເຊັ່ນກັນ.

14 ຄໍາເຫັນ

  1. 1
    • 2

      ຂ້ອຍຄິດວ່າເຈົ້າສາມາດ!

      ໃນກໍລະນີນີ້, ຂ້ອຍໄດ້ສ້າງການເຊື່ອມຕໍ່ 'ສຳ ຮອງ' ໃນໂປແກຼມ web, ສະນັ້ນການເຮັດວຽກຂອງ PHP ແມ່ນສິ່ງທີ່ຂ້ອຍຕ້ອງການ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຂ້ອຍບໍ່ເຄີຍຮູ້ວ່າເຈົ້າຍັງສາມາດຂຽນໄປຫາເອກະສານໂດຍກົງຈາກ ຄຳ ຖະແຫຼງການ MySQL. ຫນາວ​ຫຼາຍ!

      ຂໍຂອບໃຈ!

      • 3

        ວິທີການຂອງທ່ານແນ່ນອນວ່າມັນຈະເປັນວິທີທີ່ດີທີ່ສຸດຖ້າ MySQL server ຢູ່ໃນເຄື່ອງຫ່າງໄກ, ເພາະວ່າມັນອາດຈະບໍ່ສາມາດຂຽນໃສ່ເຄື່ອງທີ່ PHP ກຳ ລັງໃຊ້ຢູ່.

        ຍິນດີທີ່ຈະຊີ້ບອກທິດທາງອື່ນແລະສິ່ງ ໃໝ່ໆ ເຖິງແມ່ນວ່າ🙂

      • 4

        ແຕ່ທ່ານພຽງແຕ່ສາມາດເອີ້ນແບບສອບຖາມໄປຫາເອກະສານ, ແລະພຽງແຕ່ປ່ຽນຕົວທ່ອງເວັບໄປຫາເອກະສານທີ່ຜະລິດ, ຫຼືໃຊ້ "readfile" ຂອງ PHP ຖ້າທຸກຢ່າງລົ້ມເຫລວ?

        ທ່ານຈະບໍ່ສາມາດເຮັດແນວນັ້ນໄດ້ຖ້າເຊີບເວີ mysql ບໍ່ສາມາດເຂົ້າເຖິງລະບົບໄຟລ໌ແນ່ນອນ…

  2. 5

    ໂພດດີ. ທ່ານຮູ້ວິທີການແບບງ່າຍໆແລະບໍ່ເສຍຄ່າ / ແບບເປີດແຫຼ່ງຂອງການ ນຳ ເຂົ້າ / ການຟື້ນຟູເອກະສານທີ່ຖືກ ກຳ ນົດໂດຍແທັບ (ຄືກັບທີ່ທ່ານຫາກໍ່ສ້າງ) ກັບມາໃຊ້ໃນ mysql db ບໍ

    • 6

      Errr … 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

    ຂ້ອຍຫາກໍ່ສູນເສຍເວລາຫຼາຍກວ່າ 6 ຊົ່ວໂມງໃນຊີວິດຂອງຂ້ອຍທີ່ພະຍາຍາມຊອກຫາວ່າເປັນຫຍັງ Internet Explorer 6/7 ກຳ ລັງສະ ໝັກ ແຟ້ມເອກະສານ 'html' ແລະແລະບໍ່ຍອມຮັບຊື່ແຟ້ມທີ່ ກຳ ຫນົດເອງຂອງຂ້ອຍທີ່ລະບຸໄວ້ໃນຫົວ .. ພະຍາຍາມໃຫ້ຜູ້ໃຊ້ດາວໂຫລດເອກະສານຂໍ້ຄວາມທີ່ຖືກສ້າງຂື້ນໃນແບບທີ່ຄ້າຍຄືກັນກັບຂ້າງເທິງ.

    ຂ້ອຍ ກຳ ລັງໃຊ້ HTTPS ແລະ IE ບໍ່ເກັບຂໍ້ມູນເຫລົ່ານີ້.

    ຂ້ອຍໄດ້ພົບວິທີແກ້ໄຂໃນ ຄຳ ເຫັນຂອງ Brandon K ທີ່ http://uk.php.net/header.

    ລາວ​ເວົ້າ:

    -
    ຂ້ອຍຫາກໍ່ສູນເສຍເວລາຫົກຊົ່ວໂມງຂອງຊີວິດຂ້ອຍພະຍາຍາມໃຊ້ວິທີຕໍ່ໄປນີ້ເພື່ອສົ່ງເອກະສານ PDF ຜ່ານ PHP ໄປ Internet Explorer 6:

    ເມື່ອໃຊ້ SSL, Internet Explorer ຈະກະຕຸ້ນເຕືອນດ້ວຍການເປີດ / ບັນທຶກການສົນທະນາ, ແຕ່ຫຼັງຈາກນັ້ນກ່າວວ່າ“ ປະຈຸບັນເອກະສານບໍ່ສາມາດໃຊ້ໄດ້ຫຼືບໍ່ພົບເຫັນ. ກະລຸນາລອງ ໃໝ່ ໃນພາຍຫຼັງ. " ຫຼັງຈາກການຄົ້ນຫາມາຫຼາຍຂ້າພະເຈົ້າໄດ້ຮູ້ເຖິງມາດຕາ MSKB ຕໍ່ໄປນີ້ທີ່ມີຫົວຂໍ້ວ່າ“ ການດາວໂຫລດເອກະສານ Internet Explorer ຜ່ານ SSL ບໍ່ໄດ້ເຮັດວຽກກັບຫົວຂໍ້ຄວບຄຸມ cache” (KBID: 323308)

    PHP.INI ໂດຍຄ່າເລີ່ມຕົ້ນໃຊ້ການຕັ້ງຄ່າ: session.cache_limiter = nocache ທີ່ດັດແປງຫົວຂໍ້ Content-Cache ແລະ Pragma ເພື່ອປະກອບມີຫົວຂໍ້ "nocache". ທ່ານສາມາດ ກຳ ຈັດຂໍ້ຜິດພາດຂອງ IE ໂດຍການປ່ຽນ“ nocache” ໄປເປັນ“ ສາທາລະນະ” ຫຼື“ ສ່ວນຕົວ” ໃນ PHP.INI - ສິ່ງນີ້ຈະປ່ຽນຫົວຂອງຫົວຂໍ້ Content-Cache ພ້ອມທັງເອົາຫົວ Pragma ອອກ ໝົດ. ຖ້າທ່ານບໍ່ສາມາດຫລືບໍ່ຕ້ອງການປັບປຸງແກ້ໄຂ PHP.INI ສຳ ລັບການແກ້ໄຂໃນເວັບໄຊທ໌້, ທ່ານສາມາດສົ່ງສອງຫົວຂໍ້ຕໍ່ໄປນີ້ເພື່ອຂຽນທັບແບບ ທຳ ມະດາ:

    ທ່ານຍັງຈະຕ້ອງ ກຳ ນົດຫົວຂໍ້ເນື້ອຫາດັ່ງທີ່ໄດ້ລະບຸໄວ້ຂ້າງເທິງເພື່ອເຮັດວຽກນີ້. ກະລຸນາສັງເກດບັນຫານີ້ເທົ່ານັ້ນທີ່ສົ່ງຜົນກະທົບຕໍ່ Internet Explorer, ໃນຂະນະທີ່ Firefox ບໍ່ສະແດງພຶດຕິ ກຳ ທີ່ບົກຜ່ອງນີ້.
    -

    ດີ .. ຢ່າງຫນ້ອຍເຂົາພຽງແຕ່ສູນເສຍ 6 ຊົ່ວໂມງ…

  4. 9

    ນີ້ເຮັດວຽກໄດ້ດີ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຂ້າພະເຈົ້າພຽງແຕ່ໄດ້ຮັບທຸກສິ່ງທຸກຢ່າງຢູ່ເສັ້ນດຽວທີ່ແຍກອອກຈາກຊ່ອງຫວ່າງ. ຂ້າພະເຈົ້າພະຍາຍາມດັດແປງມັນເພື່ອພິມທຸກຢ່າງໃນສາຍແຍກຕ່າງຫາກດັ່ງນີ້:

    Column1_name
    ຊ່ອງຂໍ້ມູນ 1_ ຄ່າ
    Column2_name
    ຊ່ອງຂໍ້ມູນ 1_ ຄ່າ
    Column3_name
    ຊ່ອງຂໍ້ມູນ 1_ ຄ່າ

    Column1_name
    ຊ່ອງຂໍ້ມູນ 2_ ຄ່າ
    Column2_name
    ຊ່ອງຂໍ້ມູນ 2_ ຄ່າ
    Column3_name
    ຊ່ອງຂໍ້ມູນ 2_ ຄ່າ

    ຍົກ​ຕົວ​ຢ່າງ:

    ຊື່
    Mike
    ສະ​ຖານ​ທີ່
    ການເຮັດວຽກ
    ຈໍານວນ
    1

    ຊື່
    Sue
    ສະ​ຖານ​ທີ່
    ຫນ້າທໍາອິດ
    ຈໍານວນ
    2

    ຊື່
    John
    ສະ​ຖານ​ທີ່
    ການເດີນທາງ
    ຈໍານວນ
    10

    ແລະອື່ນໆ. ສາມາດດັດແກ້ສະຄິບນີ້ເພື່ອເຮັດມັນໄດ້ບໍ?
    ຂໍຂອບໃຈ!

    • 10

      ໃຫ້ແນ່ໃຈວ່າສາມາດເຮັດໄດ້.

      ລອງສິ່ງນີ້:

      SELECT * ຈາກ MyTableName INTO OUTFILE 'MyTableName_MySQL-TAB-DELIMITED-29JUN08.txt' FIELDS TERMINATED BY '\ n' ສາຍພາຍໃນໂດຍ '' n;

      ຖ້າທ່ານຕ້ອງການມີຊ່ອງຫວ່າງສອງແຖວ (ສອງເສັ້ນຫວ່າງ) ລະຫວ່າງກຸ່ມບັນທຶກ, ທ່ານພຽງແຕ່ເວົ້າວ່າ "LINES TERMINATED BY '\ n \ n';" ແທນທີ່ຈະ.

      ສ່ວນ "FIELDS TERMINATED BY '\ n'" ແມ່ນສິ່ງທີ່ວາງສາຍ ໃໝ່ ຫຼັງຈາກແຕ່ລະບັນທຶກ, ແທນທີ່ຈະແທັບ. ແທັບຈະເປັນ '\ t' ແທນ.

      ມານານາທາ!

  5. 11

    ນີ້ແມ່ນການຕອບທີ່ຍິ່ງໃຫຍ່ defiantly, ຂ້າພະເຈົ້າໄດ້ພະຍາຍາມມັນແລະເຮັດວຽກທີ່ຍິ່ງໃຫຍ່, ສິ່ງດຽວແມ່ນວ່າເອກະສານ txt ຂອງຂ້ອຍມີແຖວພິເສດຂ້າງເທິງຫົວຂໍ້, ແລະຜົນໄດ້ຮັບບາງຢ່າງຖືກແຍກອອກເປັນ 2 ແຖວ, ນີ້ອາດຈະເປັນສາເຫດຍ້ອນຂໍ້ມູນທີ່ຂ້ອຍມີ ໃນຖານຂໍ້ມູນຂອງຂ້ອຍບໍ່ມີຄວາມຄິດ, ແຕ່ນີ້ແມ່ນການຊ່ວຍເຫຼືອທີ່ດີທີ່ຈະສ້າງອາຫານ…

  6. 12

    Douglas Karr ລະຫັດຂອງທ່ານໂງ່ນຫີນແທ້ໆ! ມັນມີປະໂຫຍດຫຼາຍຢ່າງເປັນພິເສດຖ້າທ່ານພຽງແຕ່ຕ້ອງການຜົນຜະລິດທີ່ເປັນຮູບແບບຕົວ ໜັງ ສື. ຂອບ​ໃຈ​ຫຼາຍໆ! ຈາກທີມຟີລິບປິນ!

  7. 13

    ສະ​ບາຍ​ດີ! ມີຜູ້ໃດຜູ້ ໜຶ່ງ ຈາກບ່ອນນີ້ທີ່ສາມາດໃຫ້ ຄຳ ແນະ ນຳ ກ່ຽວກັບການ ນຳ ເຂົ້າແຜ່ນແພເຂົ້າຖານຂໍ້ມູນຂອງຂ້ອຍ (phpmyAdmin) ໂດຍໃຊ້ php ຂອງຂ້ອຍເປັນຈຸດຈົບທາງ ໜ້າ ຂອງຂ້ອຍ. ຂ້ອຍມີຄວາມຄິດກ່ຽວກັບການດາວໂຫລດເອກະສານແລະເປີດມັນ, ບັນຫາຂອງຂ້ອຍແມ່ນວິທີທີ່ຂ້ອຍສາມາດໄດ້ຮັບຜົນເປັນແຖວແລະວິທີການໃສ່ມັນເຂົ້າໃນຕາຕະລາງຂອງຂ້ອຍ, ຂອບໃຈ

  8. 14

    ກະລຸນາຜູ້ໃດຜູ້ຫນຶ່ງບອກຂ້ອຍກ່ຽວກັບວິທີການລຶບແຖວແຖວຫົວຂ້າງເທິງຫົວຂໍ້ຫົວຂໍ້

ທ່ານຄິດແນວໃດ?

ເວັບໄຊທ໌ນີ້ໃຊ້ Akismet ເພື່ອຫຼຸດຜ່ອນການຂີ້ເຫຍື້ອ. ຮຽນຮູ້ວິທີທີ່ຂໍ້ມູນຂອງທ່ານຖືກປະຕິບັດ.