php中foreach循环,出现一个问题,提取数据时总是缺一条数据?总数100条的提出99条来,剩下一条,不见了

$sskkMap = array('商品代码'=>'A','商品'=>'B','价格'=>'C');
$kkssMap = array('aasd'=>'A','sxfd'=>'B','dxdx'=>'C');
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$sql = "select * from CARCAR where '1' LIMIT 0 ,500"; //完成
$lists = $db->select($sql);
$i = 0 ;
foreach($lists as $record)
{
$i++;
if($i == 1) //$i==0,数据首条就出现了。但是表格首行没了
foreach($sskkMap as $k =>$col) //表格首行
{
$objPHPExcel->setActiveSheetIndex()->setCellValue($col.$i, $k);
}
else
foreach($kkssMap as $k =>$col) //表格第二行起。这里总是缺一条数据没提取出来。。
{ //好像就是数据的首条。
$objPHPExcel->setActiveSheetIndex()->setCellValue($col.$i, $record[$k]);
}
}
if(!empty($lists))
{
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}

第1个回答  2013-10-20

同学,你试试这样

    $sskkMap = array('商品代码'=>'A','商品'=>'B','价格'=>'C');
    $kkssMap = array('aasd'=>'A','sxfd'=>'B','dxdx'=>'C');
    $objPHPExcel = new PHPExcel();
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw");      
    $sql = "select * from CARCAR where '1'  LIMIT 0 ,500";  //完成
    $lists = $db->select($sql); 
    $i = 0 ;
    foreach($lists as $record){ 
        if($i == 0){                                   //$i==0,数据首条就出现了。但是表格首行没了
            foreach($sskkMap as $k =>$col){   //表格首行
                $objPHPExcel->setActiveSheetIndex()->setCellValue($col.$i, $k); 
            }
        }
        else{
            foreach($kkssMap as $k =>$col){        //表格第二行起。这里总是缺一条数据没提取出来。。
                $objPHPExcel->setActiveSheetIndex()->setCellValue($col.$i, $record[$k]);  
            }
        }
        $i++;
    } 
    if(!empty($lists)){
        $objPHPExcel->getActiveSheet()->setTitle('Simple'); 
        $objPHPExcel->setActiveSheetIndex(0);
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
        $objWriter->save('php://output');
    }

追问

谢谢。试了下你的代码,但是和以前一样。。只能提出100条,但是还是没有首行标题。
现在的状况,就是提取的EXECL表,总数老是100条,要么数据99条+1条标题,要么就是全部100数据+0标题行。。。按理说正确应该为101条,一行标题+100行数据。

第2个回答  2013-10-19
你要输出表头就别把表头放在foreach循环里啊,或者提出foreach的index再做判断,而不是用for循环啊本回答被提问者采纳
第3个回答  2013-10-20
$sql = "select * from CARCAR where '1' LIMIT 0 ,500"; //完成
我很好奇,后面条件1是给哪个字段的
第4个回答  2013-10-19
你猜!!!!!!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网