2017-02-25 168 views
0

是否有可能從此創建csv文件?如何將查詢結果導出到csv文件?

此表中的數據庫看起來像下面

id | category| supplier | price 
    1 | A | supplier1 | 5 
    2 | B | supplier2 | 3 
    3 | B | supplier1 | 7 
    4 | C | supplier3 | 6 
    5 | C | supplier1 | 2 
    6 | B | supplier3 | 9 
<?php 
session_start(); 
$host = "localhost"; 
$user = "root"; 
$pass = ""; 

$con = mysql_connect($host,$user,$pass); 
if($con) 
{ 
     $db = mysql_select_db('stocks'); 
     if($db) 
     {} 
     else 
     { 
     echo "No Database Found! " ; 
     } 
} 
else 
{ 
    echo "Failed to Connect! "; 
} 
?> 
<table> 
<tr> 
    <th>Category</th> 
    <th>Stock</th> 
    <th>Percentage</th> 
</tr> 
<?php 
$total=6; 
     $q="SELECT id,name,supplier,price,COUNT(*) FROM items GROUP BY supplier"; 
     $r = mysql_query($q); 
     while($row = mysql_fetch_array($r)) 
     { 
       $ratio=($row['COUNT(*)']/$total)*(100); 
      echo "<tr>"; 
echo "<td>" . $row['category'] . "</td>"; 
echo "<td>" . $row['COUNT(*)'] . "</td>"; 
echo "<td>" . round($ratio,2). "%</td>"; 
echo "</tr>"; 
     } 
echo "</table>";   
     ?> 

我怎樣才能把在CSV的一個回聲?

我只知道這樣做是爲了在表中選擇所有。

分類庫存百分比 A 1 16.67% 乙3 50% 的C 2 33.33%

+0

@使用forad for oracle你可以做到這一點..是否該選項可以幫助你,如果是的話生病告訴y ou怎麼辦 – sam

+0

@Gordon謝謝,但我剛剛接觸編程,只是偶然發現了table-csv主題,我想知道它是否也可以做到這一點,它將在 – kenn

回答

0

可以使用PHP函數fputcsv此。我正在分享一個示例工作代碼。

$rs=mysql_query($sql,$conn); 
while($row = mysql_fetch_assoc($rs)) { 
    fputcsv($output, $row); 
} 
+0

的工作方式非常有用,但它會輸出數據庫中的所有內容。使它看起來像上面的回聲 – kenn

0
// output headers so that the file is downloaded rather than displayed 
header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=data.csv'); 

// create a file pointer connected to the output stream 
$output = fopen('php://output', 'w'); 

// output the column headings 
fputcsv($output, array('Column 1', 'Column 2', 'Column 3')); 

// fetch the data 
mysql_connect('localhost', 'username', 'password'); 
mysql_select_db('database'); 
$rows = mysql_query('SELECT field1,field2,field3 FROM table'); 

// loop over the rows, outputting them 
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row); 

鏈接http://code.stephenmorley.org/php/creating-downloadable-csv-files/頁希望滿足您的需求

+0

但$比率不在數據庫表中?好吧,我會嘗試我希望它 – kenn

+0

它輸出表中的所有內容 – kenn

+0

使用isnull(column_name,'0')作爲column_name在選擇查詢處理空值,這是最後一個提示,以消除錯誤享受 –

0
while($row = mysql_fetch_array($r)) 
     { $data=array($row['category'],$row['COUNT(*)'],round(($row['COUNT(*)']/$total)*(100),2)); 
      fputcsv($output, $data); 
     } 

@Davinder @Virgilio這個工作完全感謝,但有錯誤消息(解析錯誤:語法錯誤,意外 ')'在39行上的C:\ xampp \ htdocs \ revamp \ csv.php) 除此之外,它可以完美運行

+0

如何擺脫這個錯誤? – kenn