0

Application.It で db コンテンツを csv ファイルとしてエクスポートする必要があります。ただし、コンテンツは最初の行からではありません。40行目から始まります。これ以上何をしなければなりませんか?

header('Content-Encoding: UTF-8');
header("Cache-Control: cache, must-revalidate");
header("Pragma: public");
header('Content-Type: text/csv, charset=UTF-8; encoding=UTF-8');
$filename = date('Y_m_d_s');
header("Content-Disposition: attachment; filename=\"".$filename.".csv\"");

if($dbResult) {
    $cnthead=0; $cntr =count($dbResult[0])-1;
    foreach($dbResult[0] as $key => $Val){ 
        echo $key;
        if($cnthead < $cntr) {
            echo ",";
            $cnthead++;
        }
    }
    echo "\n";
    foreach($dbResult as $dbRes){
        $cntcontnt=0;
        foreach($dbRes as $dbVal){ 
            echo $dbVal; 
            if($cntcontnt < $cntr) {
                echo ",";
                $cntcontnt++;
            }
        }
        echo "\n";
    }
}

$dbResult 配列は以下のようになります。

Array
(
    [0] => Array
        (
            [Appraisee Name] => aaa R
            [Team] => Software
            [Appraisee Emp No] => -
            [Appraiser Name] => vvv A
            [Appraiser Emp No] => -
            [Reviewer Name] => sss S
            [Reviewer Emp No] => -
            [Current Appraisal Status] => start
        )

    [1] => Array
        (
            [Appraisee Name] => gan R
            [Team] => Software
            [Appraisee Emp No] => -
            [Appraiser Name] => fcv R
            [Appraiser Emp No] => -
            [Reviewer Name] => sss S
            [Reviewer Emp No] => -
            [Current Appraisal Status] => start
        ) 
)
4

3 に答える 3

0

問題はここから始まると思います

$cntr =count($dbResult[0])-1; //so $cntr = 7;

foreach($dbResult[0] as $key => $Val){ 
    echo $key;
    if($cnthead < $cntr) {//this condition only true for first 7 loops after it will fails
        echo ",";
        $cnthead++;
    }
}

たとえば、$dbResult には 7 つ以上のレコードがあり、最初の forloop if ステートメントには入りません。$dbResult のすべてのレコードをループしたい場合は、次のようにコードを変更します。

私はあなたが変更する必要があると思います

$cntr =count($dbResult[0])-1;

の中へ

$cntr =count($dbResult)-1;

コードでこの変更を試してください

于 2013-08-23T07:02:06.377 に答える
0

user2063756 のおかげで、あなたは私を正しい方向に向けてくれました。私のCSVファイルは4行目から始まりました。単純に、定数の PHP インクルード ファイルを使用していたため、このファイルの "

だった "

それ以外の "

于 2017-03-30T15:32:37.430 に答える