簡體   English   中英

PHP - Oracle查詢CSV創建,在同一行返回結果

[英]PHP - Oracle query CSV creation, return results on same row

首先,如果我在這里提出的問題是愚蠢的,我很抱歉,我試圖在網上找到答案,但我似乎無法將搜索詞放在一個簡短的單詞中(設法回答我的問題)。 其次,我知道我的問題的答案非常簡單,但我對PHP / Scripting相當新,並且在嘗試尋找解決方案時花了好幾個小時。

我有一個PHP腳本查詢Oracle數據庫,輸出到CSV文件然后通過電子郵件發送給我。 這很好,除了我想要查詢輸出到單行的所有結果。

我想設置一個運行多個查詢的自動化(每個查詢大約5-10行),以輸出到CSV文件。 php文件的摘錄如下:

$csvLength = fputcsv($tmp, array(
    'Code',
    'count(*)'
));

while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
{
    $csvLength += fputcsv($tmp, array(
        $row['Code'],
        $row['COUNT(*)']
    ));
}

rewind($tmp);
$csvContent = fread($tmp, $csvLength);
fclose($tmp);

這將寫一個CSV文件,其輸出如下:

Code,count(*)
APPLE,201
ORANGE,504
BANANA,864

我想要的輸出是這樣的:

Code,count(*),Code,count(*),Code,count(*)
APPLE,201,ORANGE,504,BANANA,864

(頂行不一定需要輸出多個代表)

然后我可以添加到php腳本以包含更多查詢,以便創建的csv文件最終會像這樣:

Run blah.php from dates 21/11/2011 to 27/11/2011...
Code,count(*),Code,count(*),Code,count(*)
APPLE,201,ORANGE,504,BANANA,864

Reason,count(*),Reason,count(*),Reason,count(*)
Rotten,10,Bruised,42,Fermented,67

Region,count(*),Region,count(*),Region,count(*)
Oddtown,503,Newtown,204,Averagetown,631

提前感謝能夠回答我問題的任何人。 我可以想象答案可能很簡單,但我嘗試的任何東西似乎都給我錯誤,我似乎無法在任何地方找到答案。

我將結果放在一個數組中:

$arr = array('Apple', '201', 'Orange', 504);

然后我會使用fprintfimplode連續打印它們:

if (!($fp = fopen('file.txt', 'w'))) {
   exit;
}
fprintf($fp, "%s\n",implode(",", $arr));

這將輸出

蘋果,201,橙色,504

對於列名,您所要做的就是獲取結果數並多次打印它們。 例如,如果有5個結果我會這樣做:

fprintf($ fp,“%s \\ n”,implode(“,”,array_fill(0,5,“Code,count(*)”)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM