好的,我有一个脚本,可以从不同客户的php页面生成pdf报告。目前,这一次只能处理一个客户端,但我想添加一个while语句,以便能够应对从下拉列表中选择“所有”客户端。
while应该从mydatabase.mytable中选择*联系人并运行每个联系人的正常代码。这是我不知道该怎么做的。
我知道这样的事情,但不太记得语法......
<?php
$client_id=$_POST["client_id"];
$date_start=$_POST["date_start"];
$date_end=$_POST["date_end"];
if ($client_id == 'ALL') {
}
else
{
$command="php myfile.php $client_id $date_start $date_end > myfile.html";
exec($command, $output, $status);
if ($status!=0) {print_r($output); die("wget failed with status $status"); }
$command="wkhtmltopdf-i386 --margin-left 5mm --margin-right 5mm myfile.html myfile.pdf";
exec($command, $output, $status);
if ($status!=0) die("htmltopdf failed");
}
?>
任何建议都将不胜感激
非常感谢
答案 0 :(得分:0)
简单的if
控件结构就足够了。
if ('All' == $client_id) {
// e.g. - generateReport(-1)
// Your function would look for -1 so it knows to generate for all
}
else {
// e.g. - generateReport($client_id);
}
答案 1 :(得分:0)
如果您从数据库中选择所有联系人,那么您应该能够获得某种类型的数组,可能是这样的:
array(
['John Smith'] => array( 'company' => 'xyz'),
['Anna Citizen'] => array( 'company' => 'abc),
)
要生成上述数组,您可以检查“所有”联系人:
if ($_POST['dropdown'] == "ALL"){
//generate for ALL
}else{
//generate for 1 contact
}
然后,您可以使用foreach循环遍历数组以查找所有联系人:
foreach ($contacts as $contact => $attributes){
var_dump($contact); //John Smith
var_dump($attributes); // array('company' => 'xyz);
var_dump($attributes['company']); //xyz
//Do whatever to generate reports.
}