Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/10/2005, 09:06
Avatar de Txane
Txane
 
Fecha de Ingreso: febrero-2004
Ubicación: Morelia Michoacan
Mensajes: 272
Antigüedad: 22 años, 8 meses
Puntos: 2
A ver que tal te funciona esto:

Código PHP:
1    <?php 
2   
//EDIT YOUR MySQL Connection Info: 
3   $DB_Server = "localhost";        //your MySQL Server  
4   $DB_Username = "";                 //your MySQL User Name  
5   $DB_Password = "";                //your MySQL Password  
6   $DB_DBName = "";                //your MySQL Database Name  
7   $DB_TBLName = "";                //your MySQL Table Name  
8   //$DB_TBLName,  $DB_DBName, may also be commented out & passed to the browser 
9   //as parameters in a query string, so that this code may be easily reused for 
10   //any MySQL table or any MySQL database on your server 
11   //DEFINE SQL QUERY: 
12   //you can use just about ANY kind of select statement you want -  
13   //edit this to suit your needs! 
14   $sql = "Select * from $DB_TBLName"; 
15   //Optional: print out title to top of Excel or Word file with Timestamp 
16   //for when file was generated: 
17   //set $Use_Titel = 1 to generate title, 0 not to use title 
18   $Use_Title = 1; 
19   //define date for title: EDIT this to create the time-format you need 
20   $now_date = date('m-d-Y H:i'); 
21   //define title for .doc or .xls file: EDIT this if you want 
22   $title = "Dump For Table $DB_TBLName from Database $DB_DBName on $now_date"; 
23   /* 
24   Leave the connection info below as it is: 
25   just edit the above. 
26   (Editing of code past this point recommended only for advanced users.) 
27   */ 
28   //create MySQL connection 
29   $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) 
30       or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno()); 
31   //select database 
32   $Db = @mysql_select_db($DB_DBName, $Connect) 
33       or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno()); 
34   //execute query 
35   $result = @mysql_query($sql,$Connect) 
36       or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno()); 
37   //if this parameter is included ($w=1), file returned will be in word format ('.doc') 
38   //if parameter is not included, file returned will be in excel format ('.xls') 
39   if (isset($w) && ($w==1)) 
40   { 
41       $file_type = "msword"; 
42       $file_ending = "doc"; 
43   }else { 
44       $file_type = "vnd.ms-excel"; 
45       $file_ending = "xls"; 
46   } 
47   //header info for browser: determines file type ('.doc' or '.xls') 
48   header("Content-Type: application/$file_type"); 
49   header("Content-Disposition: attachment; filename=database_dump.$file_ending"); 
50   header("Pragma: no-cache"); 
51   header("Expires: 0"); 
52   /*    Start of Formatting for Word or Excel    */ 
53   if (isset($w) && ($w==1)) //check for $w again 
54   { 
55       /*    FORMATTING FOR WORD DOCUMENTS ('.doc')   */ 
56       //create title with timestamp: 
57       if ($Use_Title == 1) 
58       { 
59           echo("$titlenn"); 
60       } 
61       //define separator (defines columns in excel & tabs in word) 
62       $sep = "n"; //new line character 
63       while($row = mysql_fetch_row($result)) 
64       { 
65           //set_time_limit(60); // HaRa 
66           $schema_insert = ""; 
67           for($j=0; $j<mysql_num_fields($result);$j++) 
68           { 
69           //define field names 
70           $field_name = mysql_field_name($result,$j); 
71           //will show name of fields 
72           $schema_insert .= "$field_name:t"; 
73               if(!isset($row[$j])) { 
74                   $schema_insert .= "NULL".$sep; 
75                   } 
76               elseif ($row[$j] != "") { 
77                   $schema_insert .= "$row[$j]".$sep; 
78                   } 
79               else { 
80                   $schema_insert .= "".$sep; 
81                   } 
82           } 
83           $schema_insert = str_replace($sep."$", "", $schema_insert); 
84           $schema_insert .= "t"; 
85           print(trim($schema_insert)); 
86           //end of each mysql row 
87           //creates line to separate data from each MySQL table row 
88           print "n----------------------------------------------------n"; 
89       } 
90   }else{ 
91       /*    FORMATTING FOR EXCEL DOCUMENTS ('.xls')   */ 
92       //create title with timestamp: 
93       if ($Use_Title == 1) 
94       { 
95           echo("$titlen"); 
96       } 
97       //define separator (defines columns in excel & tabs in word) 
98       $sep = "t"; //tabbed character 
99       //start of printing column names as names of MySQL fields 
100       for ($i = 0; $i < mysql_num_fields($result); $i++) 
101       { 
102           echo mysql_field_name($result,$i) . "t"; 
103       } 
104       print("n"); 
105       //end of printing column names 
106       //start while loop to get data 
107       while($row = mysql_fetch_row($result)) 
108       { 
109           //set_time_limit(60); // HaRa 
110           $schema_insert = ""; 
111           for($j=0; $j<mysql_num_fields($result);$j++) 
112           { 
113               if(!isset($row[$j])) 
114                   $schema_insert .= "NULL".$sep; 
115               elseif ($row[$j] != "") 
116                   $schema_insert .= "$row[$j]".$sep; 
117               else 
118                   $schema_insert .= "".$sep; 
119           } 
120           $schema_insert = str_replace($sep."$", "", $schema_insert); 
121           //following fix suggested by Josue (thanks, Josue!) 
122           //this corrects output in excel when table fields contain n or r 
123           //these two characters are now replaced with a space 
124           $schema_insert = preg_replace("/rn|nr|n|r/", " ", $schema_insert); 
125           $schema_insert .= "t"; 
126           print(trim($schema_insert)); 
127           print "n"; 
128       } 
129   } 
130   ?>