-4

我有类似的刺痛

$_POST["ids"]='ABC,DEF,GHI'

我想分离三个变量中的每一个,然后通过 while 循环运行分离的结果。

foreach( explode( ',', $_POST["ids"]) as $Client_ID)
{
  $sql_qry="select *
            from   ca_client_statement
            where  client_id='".$Client_ID."' and trading_period_month like '".$TP_Month."'";
  $sql_err_no=sql_select($sql_qry,$sql_res,$sql_row_count,$sql_err,$sql_uerr);

  $row = mysql_fetch_assoc($sql_res);
  $bytes = $row['pdf_statement'];
  header("Content-type: application/pdf");
  header('Content-disposition: attachment; filename="'.$Client_ID.'statement'.$TP_format.'.pdf"');
  print $bytes;
}  

这只会为 ABC 生成一个语句。不是三个

非常感谢

4

1 回答 1

1

是的,但我建议您在调用后使用foreach循环而不是循环,如下所示:whileexplode()

foreach( explode( ',', $string) as $value)
    echo $value . ' ';

这将打印ABC DEF GHI.

要将其应用于您的示例代码,您不能header()在输出某些内容后调用,除非您启用了输出缓冲。

试试这个:

header("Content-type: application/pdf");
header('Content-disposition: attachment; filename="'.$Client_ID.'statement'.$TP_format.'.pdf"');
foreach( explode( ',', $_POST["ids"]) as $Client_ID)
{
  $sql_qry="select *
            from   ca_client_statement
            where  client_id='".$Client_ID."' and trading_period_month like '".$TP_Month."'";
  $sql_err_no=sql_select($sql_qry,$sql_res,$sql_row_count,$sql_err,$sql_uerr);

  $row = mysql_fetch_assoc($sql_res);
  $bytes = $row['pdf_statement'];
  print $bytes;
}  
于 2012-06-26T18:42:36.347 回答