0

私は自分の限界を超えた何かをしようとしているので、誰かが私を助けてくれることを願っています.PHPまたはMySQL内にこれのための関数が存在するかどうかさえわからないので、Googleでの検索はあまり生産的ではありません.

PHP/MySql プロジェクトで PHPWord を使用しています。意図は、テンプレートに基づいて Word ドキュメントを作成することです。

スタック交換にもあるこのガイドを使用しました。

ただし、このアプローチでは行数と値をハードコードする必要があります。つまり、彼の例では cloneRow('first_name', 3) を使用しています。タグ、つまり

$doc->setValue('first_name#1', 'Jeroen');
$doc->setValue('last_name#1', 'Moors');
$doc->setValue('first_name#2', 'John');

私はこれを動的にしようとしています。私のインスタンスでは、タイムテーブルを作成しようとしています。子テーブルの 1 つはまさにそれなので、クエリはエントリの数を調べて、それらの数を収集します。次に $count を使用して、正しい行数を動的に作成します。これは私が使用しているカウントです:

$rs10 = CustomQuery("select count(*) as count FROM auditplanevents where AuditModuleFk='" . $result["AuditModulePk"]."'"); 
$data10 = db_fetch_array($rs10);
$Count = $data10["count"];

次に、これを使用し$document->cloneRow('date', $Count);て clonerow 関数を実行します。これはうまく機能し、ドキュメントは次のようになります

だから、これまでのところとても良いです。

私が今欲しいのは、クエリの各行の値をドキュメントに追加する方法です。そのため、タグ値を手動で設定するのではなく、つまり、これには foreach クエリが含まれると思われる$doc->setValue('first_name#1', 'Jeroen');ようなものを使用でき$doc->setValue('first_name#1', '$name from row 1'); ますが、よくわかりません。

上記が理にかなっていることを願っていますが、お気軽に他のことを聞いて、私の個人的なヒーローになってください. ありがとう

更新: わかりやすくするために、出力を次のようにすることをお勧めします。

私の例では 5 つの結果があり、したがって 5 つの行が作成されます。次のように値を設定します。

${$date1} = date column from query 1st row
${$date2} = date column from query 2nd row
${$date3} = date column from query 3rd row
${$date4} = date column from query 4th row
${$date5} = date column from query 5th row
4

1 に答える 1

0

AI ID を使用して、クエリからのレコードを一時テーブルに挿入し、次を使用して、これを整理することができました。

//update timetable with events from temp table
$rs14 = CustomQuery("select *  FROM tempauditplan where AuditModuleFk='" . $result["AuditModulePk"]."'"); 
while ($data14 = db_fetch_array($rs14))
    {
        $document->setValue('date#'.$data14["rowid"], date('d/m/y', strtotime($data14["date"])));
        $document->setValue('time#'.$data14["rowid"], date('H:i', strtotime($data14["time"])));
        $document->setValue('auditor#'.$data14["rowid"], $data14["auditor"]);
        $document->setValue('area#'.$data14["rowid"], $data14["area"]);
        $document->setValue('notes#'.$data14["rowid"], $data14["notes"]);
        $document->setValue('contact#'.$data14["rowid"], $data14["contact"]);
    }

トリックは、使用後にテーブルを切り捨てて、再度使用できるようにする関数も用意することです

最も効率的な方法ではないかもしれませんが、うまくいきます!

于 2015-05-30T16:14:03.683 に答える