2017-04-25 41 views
-2

正如標題已經規定,我需要從MySQL發送數據通過PHP擅長用一些過濾即值大於0PHP和MySQL到Excel

我喜歡this code偉大的工程......

<?php 
/*******EDIT LINES 3-8*******/ 
$DB_Server = "localhost"; //MySQL Server  
$DB_Username = "username"; //MySQL Username  
$DB_Password = "password";    //MySQL Password  
$DB_DBName = "databasename";   //MySQL Database Name 
$DB_TBLName = "tablename"; //MySQL Table Name 
$filename = "excelfilename";   //File Name 
/*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/  
//create MySQL connection 
$sql = "Select * from $DB_TBLName"; 
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno()); 
//select database 
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno()); 
//execute query 
$result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());  
$file_ending = "xls"; 
//header info for browser 
header("Content-Type: application/xls");  
header("Content-Disposition: attachment; filename=$filename.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
/*******Start of Formatting for Excel*******/ 
//define separator (defines columns in excel & tabs in word) 
$sep = "\t"; //tabbed character 
//start of printing column names as names of MySQL fields 
for ($i = 0; $i < mysql_num_fields($result); $i++) { 
echo mysql_field_name($result,$i) . "\t"; 
} 
print("\n");  
//end of printing column names 
//start while loop to get data 
    while($row = mysql_fetch_row($result)) 
    { 
     $schema_insert = ""; 
     for($j=0; $j<mysql_num_fields($result);$j++) 
     { 
      if(!isset($row[$j])) 
       $schema_insert .= "NULL".$sep; 
      elseif ($row[$j] != "") 
       $schema_insert .= "$row[$j]".$sep; 
      else 
       $schema_insert .= "".$sep; 
     } 
     $schema_insert = str_replace($sep."$", "", $schema_insert); 
     $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); 
     $schema_insert .= "\t"; 
     print(trim($schema_insert)); 
     print "\n"; 
    } 
?> 

...如何當我試圖分開的要求值,即大於0我什麼也得不到。我試圖做的是如下:

我已經在while($row = mysql_fetch_row($result)){之後加了這個if ($row["row_name"] > "0"),在另一個例子中我工作得很好,但是這次沒有運氣。任何指針應該不勝感激。

+5

** **停止。使用'mysqli_ *'或PDO – Jens

+0

^這。此外,我會建議尋找使用PHPOffice/PHPExcel或PHPOffice/PHPSpreadsheet(較新) –

+0

你的表中有一列'row_name'嗎? – Jens

回答

0

只要改變while($row = mysql_fetch_row($result))while($row = mysql_fetch_array($result))再加入while($row = mysql_fetch_row($result)){