SQL,PHP导出到CSV静态字段

时间:2017-02-14 07:22:43

标签: php mysql sql

我创建了这个php脚本,从我的数据库中提取一些数据并将其导出为CSV。

我的标题设置为0,1,2,3,4,5但我在第2,3,4和5列需要一些静态文本。

例如股票代码,QTY,静态,静态,静态,静态。

股票代码QTY正从数据库中提取。

任何帮助都将不胜感激。

我的代码如下。

// open connection to mysql database
$connection = mysqli_connect($host, $username, $password, $dbname) or die("Connection Error " . mysqli_error($connection));

// fetch mysql table rows
$sql = "select ManufacturerPartNumber, (QuantityOnHand - QuantityOnSalesOrder) from iteminventory";
$result = mysqli_query($connection, $sql) or die("Selection Error " . mysqli_error($connection));

$fp = fopen('inventory.csv', 'w');

     fputcsv($fp, array('0', '1', '2', '3' '4' '5'));


while($row = mysqli_fetch_assoc($result))
{
     fputcsv($fp, $row);
}

fclose($fp);

//close the db connection
mysqli_close($connection);

我有一天用这段代码把东西放到第一列。

    $id = 0; // or whatever else you want to have in the first column while($row = mysqli_fetch_assoc($result)) 
{ 
array_unshift($row, $id); 
fputcsv($fp, $row); 
$id; } 

1 个答案:

答案 0 :(得分:0)

您将结果提取到关联数组中,这意味着每个行看起来像:['name1'=> 'value1','name2'=> '值']

首先,您应该使用select语句中的AS Quantity等名称从DB中为您的第二个值提供一个名称。然后,您可以按照您喜欢的方式将行中的值复制到新数组中,或者使用您需要的值扩展行(这是一个数组)。由于您在CSV的情况下工作索引,我建议您创建一个新数组并填充它。

$csvrow = array();
$csvrow[0] = $row['ManufacturerPartNumber'];
$csvrow[1] = $row['Quantity'];
$csvrow[2] = $firstStaticThingy;
... and so on.
fputcsv($fp, $csvrow);