while循环选择所有联系人

时间:2012-02-23 01:03:05

标签: php loops syntax while-loop

好的,我有一个脚本,可以从不同客户的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");
}
?>

任何建议都将不胜感激

非常感谢

2 个答案:

答案 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.
}