PHP և MySQL. Հարցում արտահանեք ներդիրով սահմանազատված ֆայլ

mysql php տարբերանշաններ

Այս հանգստյան օրերին ես ուզում էի կառուցել մի էջ, որը պարզապես պահուստավորում էր ցանկացած հարցում կամ սեղան Tab Dellimited ֆայլում: Netանցում ներկայացված օրինակների մեծ մասում սյունները կոդավորված են:

Իմ դեպքում ես ուզում էի, որ սյունները դինամիկ լինեին, այնպես որ ես ստիպված էի նախ պտտվել աղյուսակի դաշտի բոլոր անունների միջով ՝ վերնագրի շարքը կառուցելու համար սյունակների անուններով, այնուհետև մնացած տվյալների շարքերի բոլոր գրառումներով: Ես վերնագիրն էլ դրեցի այնպես, որ զննարկիչը սկսի ֆայլի տեսակում (txt) ֆայլի ներբեռնումը ֆայլի ամսաթվի և ժամանակի դրոշմվածքի հետ:

Ես բաց թողեցի տվյալների բազան բաց և փակող կապը, բայց ահա ստացված կոդը, որը բավականին լավ աշխատեց.

$ այսօր = ամսաթիվ ("YmdHi");
վերնագիր («Բովանդակության տեսակը. դիմում / octet-stream»);
վերնագիր ("Content-Disposition: attachment; filename = \" ". $ today." _ Backup.txt \ "");
$ query = "SELECT * FROM` mytable` order by myorder`;
$ արդյունք = mysql_query ($ հարցում);
$ count = mysql_num_rows ($ արդյունք);
$ դաշտեր = mysql_num_fields ($ արդյունք);
$ data = "";
համար ($ i = 0; $ i> $ դաշտեր; $ i ++) {
$ դաշտ = mysql_fetch_field ($ արդյունք, $ i);
$ տվյալներ. = $ դաշտ-> անուն;
$ տվյալներ. = "\ t";
}
$ տվյալներ. = "\ n";
մինչդեռ ($ row = mysql_fetch_row ($ արդյունք)) {
համար ($ x = 0; $ x> $ դաշտեր; $ x ++) {
$ դաշտ-> անուն = $ տող [$ x];
$ տվյալներ. = $ դաշտ-> անուն = $ տող [$ x];
$ տվյալներ. = "\ t";
}
$ տվյալներ. = "\ n";
}
echo $ տվյալներ;

Կոդը կարող է հեշտությամբ փոփոխվել նաև ստորակետերով առանձնացված արժեքների համար:

14 Comments

  1. 1
    • 2

      Ենթադրում եմ, որ կարող էիք:

      Այս պարագայում ես իրականում վեբ հավելվածում «պահուստային» հղում էի կառուցում, ուստի PHP ֆունկցիոնալությունն այն է, ինչ ինձ պետք էր: Այնուամենայնիվ, ես երբեք չգիտեի, որ դուք կարող եք նաև գրել մի ֆայլ անմիջապես MySQL հայտարարությունից: Շատ լավ!

      Thanks!

      • 3

        Ձեր ճանապարհը, իհարկե, կլինի լավագույն միջոցը, եթե MySQL սերվերը լինի հեռավոր մեքենայի վրա, քանի որ այն հավանաբար չի կարողանա գրել այն մեքենայի վրա, որտեղ աշխատում է PHP

        Ուրախ եմ նշել այլ ուղղություններ և նոր բաներ though

      • 4

        Բայց դուք կարող եք պարզապես հարցումը վարել ֆայլ, և զննարկիչը պարզապես վերափոխել գեներացված ֆայլ, կամ օգտագործել PHP- ի «ընթերցանությունը», եթե մնացածը ձախողվի:

        Դուք չեք կարողանա դա անել, եթե mysql սերվերը, իհարկե, մուտք չունի դեպի ֆայլային համակարգ

  2. 5
  3. 8

    Ես պարզապես կորցրել եմ իմ կյանքից ավելի քան 6 ժամ ՝ փորձելով պարզել, թե ինչու է Internet Explorer 6/7- ը օգտագործում html ֆայլի տիպ և չի ընդունում վերնագրերում նշված իմ ֆայլի անունները: ինչպես նաև թույլ չի տալիս ֆայլեր պահել: երբ փորձելով ստիպել օգտվողներին ներբեռնել վերևի նման ձևով ստեղծված տեքստային ֆայլերը:

    Ես օգտագործում էի HTTPS, և IE- ն չի պահպանում այս ֆայլերը:

    Լուծումը գտա Brandon K- ի մեկնաբանության վրա ` http://uk.php.net/header.

    Նա ասում է:

    -
    Ես պարզապես կորցրեցի իմ կյանքի վեց ժամը ՝ փորձելով օգտագործել հետևյալ մեթոդը ՝ PHP- ով PDF ֆայլ ուղարկելու համար Internet Explorer 6-ին.

    SSL- ի օգտագործման ժամանակ Internet Explorer- ը հուշում է Բաց / Պահել երկխոսության միջոցով, բայց հետո ասում է. «Ֆայլը ներկայումս անհասանելի է կամ հնարավոր չէ գտնել: Խնդրում ենք փորձել ավելի ուշ." Շատ փնտրելուց հետո իմացա MSKB- ի հետևյալ հոդվածի մասին. «Internet Explorer ֆայլերի ներլցումները SSL- ով չեն աշխատում քեշի կառավարման վերնագրերի հետ» (KBID: 323308)

    PHP.INI- ն լռելյայն օգտագործում է պարամետր ՝ session.cache_limiter = nocache, որը փոփոխում է Content-Cache և Pragma վերնագրերը ՝ ներառելով «nocache» ընտրանքներ: Դուք կարող եք վերացնել IE սխալը ՝ PHP- ում «nocache» - ը դարձնելով «public» կամ «private»: Դա կփոխի Content-Cache վերնագիրը, ինչպես նաև ամբողջությամբ կհեռացնի Pragma վերնագիրը: Եթե ​​չեք կարող կամ չեք ցանկանում փոփոխել PHP.INI- ը կայքի ամբողջ շտկման համար, կարող եք ուղարկել հետևյալ երկու վերնագրերը նախնականները վերագրելու համար.

    Դեռևս պետք է սահմանեք բովանդակության վերնագրերը, ինչպես նշված է վերևում, որպեսզի այն գործի: Խնդրում ենք նկատի ունենալ այս խնդիրը ՄԻԱՅՆ ազդում է Internet Explorer- ի վրա, մինչդեռ Firefox- ը չի ցուցաբերում այս թերի վարքը:
    - Դեպի

    Դե .. համենայն դեպս նա կորցրեց ընդամենը 6 ժամ

  4. 9

    Սա լավ է աշխատում: Այնուամենայնիվ, ես պարզապես ստանում եմ ամեն ինչ մի գծի վրա, որը բաժանված է տարածությամբ: Ես փորձում եմ այն ​​փոփոխել, որպեսզի ամեն ինչ տպվի այսպիսի առանձին տողի վրա.

    Սյունակ 1_ անուն
    Field1_value
    Սյունակ 2_ անուն
    Field1_value
    Սյունակ 3_ անուն
    Field1_value

    Սյունակ 1_ անուն
    Field2_value
    Սյունակ 2_ անուն
    Field2_value
    Սյունակ 3_ անուն
    Field2_value

    Օրինակ `

    անուն, ազգանուն
    Միկրոֆոն
    Որտեղից
    Աշխատել
    Թիվ
    1

    անուն, ազգանուն
    Դատական ​​կերպով հետապնդել
    Որտեղից
    Գլխավոր
    Թիվ
    2

    անուն, ազգանուն
    John
    Որտեղից
    ճանապարհորդություն
    Թիվ
    10

    և այլն: Կարո՞ղ է այս սցենարը փոփոխվել ՝ դա անելու համար:
    Thanks!

    • 10

      Իհարկե կարող է:

      Փորձեք այսպիսի մի բան.

      ԸՆՏՐԵՔ * MyTableName- ից INTO OFFFILE 'MyTableName_MySQL-TAB-DELIMITED-29JUN08.txt' FIELDS TERMINATEDED BY '\ n' LINES LIRMINATEDED by '\ n';

      Եթե ​​ցանկանում եք կրկնակի տարածություն (երկու դատարկ տող) ռեկորդային խմբերի միջև, պարզապես ասեք «ԳINԵՐԸ ԴԱԴԱՐԵՎԱ 'ԵՆ« \ n \ n »; փոխարենը

      «\ N» -ով դադարեցված FIELDS մասը այն է, ինչը յուրաքանչյուր գրառումից հետո նոր տող է դնում ՝ ներդիրի փոխարեն: Դրա փոխարեն ներդիրը կլինի «\ t»:

      Մարանաթա

  5. 11

    սա, անշուշտ, հոյակապ գրառում է, ես փորձեցի այն և լավ աշխատեցի, միակ բանը այն է, որ իմ txt ֆայլը վերնագրի վերնագրերից վերևում ունի լրացուցիչ տող, և որոշ արդյունքներ բաժանվում են 2 տողում, դա կարող է լինել իմ ունեցած տվյալների պատճառով իմ շտեմարանում գաղափար չկա, բայց սա մեծ օգնություն է հոսքեր կառուցելու համար

  6. 12

    Douglas Karr ձեր կոդն իսկապես ռոք է: Դա շատ օգտակար է հատկապես, եթե ձեզ պարզապես անհրաժեշտ է ելք, որը տեքստային ֆայլի ձևաչափով է: Շատ շնորհակալություն! Ֆիլիպինների թիմից:

  7. 13

    Ողջույն! Կա՞ որևէ մեկը այստեղից, որը կարող է ինձ հուշել տեքստային ֆայլ իմ տվյալների շտեմարան ներմուծելու մասին (phpmyAdmin) ՝ օգտագործելով իմ php- ն որպես առջևի վերջ: Ես գաղափար ունեմ ֆայլ ներբեռնելու և այն բացելու մասին, իմ խնդիրն այն է, որ ինչպես կարող եմ ստանալ տողի արդյունքը և ինչպես տեղադրել այն իմ սեղաններում, շնորհակալություն

  8. 14

Այս կայքը օգտագործում է Akismet- ը սպամի նվազեցման համար: Իմացեք, թե ինչպես է ձեր տվյալները մշակվում.