Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用对象时请注意_Php_Pdo_Phpexcel - Fatal编程技术网

Php 使用对象时请注意

Php 使用对象时请注意,php,pdo,phpexcel,Php,Pdo,Phpexcel,我有一个简单的要求: if($donnees->pays == 1) { $sql = "SELECT code_postal, nom as nom_ville FROM localite_be WHERE id = ".$donnees->code_postal_off; } elseif($donnees->pays == 2) { $sql = "SELECT code_postal, nom as nom_ville FROM localite

我有一个简单的要求:

if($donnees->pays == 1)
 {
    $sql = "SELECT code_postal, nom as nom_ville FROM localite_be WHERE id = ".$donnees->code_postal_off;
 }
 elseif($donnees->pays == 2)
 {
    $sql = "SELECT code_postal, nom as nom_ville FROM localite_fr WHERE id = ".$donnees->code_postal_off;

 }
 else
 {
    $sql = "SELECT code_postal, nom as nom_ville FROM localite_lux WHERE id = ".$donnees->code_postal_off;
 }
 $cp_ville = $bdd->prepare($sql);
 $cp_ville->execute();

 $res_cp_ville = $cp_ville->fetch(PDO::FETCH_OBJ);
我获得一个对象:

stdClass对象 [邮政编码]=>7060 [nom_ville]=>SOIGNIES

stdClass对象 [邮政编码]=>7134 [nom_ville]=>RESSAIX

及本通告:

注意:尝试在第561行的/home/web998/public\u html/classes/Excel/classes/impression\u xlsx\u demandes\u agrements.php中获取非对象的属性

注意:尝试在第562行的/home/web998/public\u html/classes/Excel/classes/impression\u xlsx\u demandes\u agrements.php中获取非对象的属性

第561行和第562行如下:

$objPHPExcel->getActiveSheet()->SetCellValue('G'.$i, $res_cp_ville->code_postal);
 $objPHPExcel->getActiveSheet()->SetCellValue('H'.$i, $res_cp_ville->nom_ville); 


 echo "<pre>";
 print_r($res_cp_ville);
 echo "</pre>";

我想您正在尝试将数据导出到excel。
是否已创建对象$objPHPExcel=新Excel;用你的excel类

代码应该是有效的。这个错误可能是由其他原因造成的:用两行代码编写,如下所示:$objPHPExcel->getActiveSheet{newline here}->SetCellValue'G'.$i,$res_cp_ville->code_postal;是我创造的。我添加了我的全部代码,请参见上面。非常感谢。
    //je crée une nouvelle sheet Excel
    $objPHPExcel->createSheet();
    //je la mets en active
    $objPHPExcel->setActiveSheetIndex(1)->setTitle('Demandes de renouvellements');

    //Demandes de renouvellements
    $sql = "SELECT pharmacien.*,
                   officine.ref_type_officine,
                   officine.telephone,
                   officine.mail,
                   officine.province,
                   officine.adresse as addr_off,
                   pays.libelle,
                   province_be.nom as prov,
                   officine.ref_code_postal as code_postal_off
            FROM pharmacien
            LEFT JOIN agrement
            ON pharmacien.ref_agrement = agrement.id
            LEFT JOIN officine
            ON pharmacien.ref_identification = officine.ref_identification
            LEFT JOIN pays
            ON pharmacien.pays = pays.id
            LEFT JOIN province_be
            ON officine.province = province_be.ID
            WHERE ( date_soumission IS NOT NULL AND ref_type_agrement = '2'  )
            ";


   //echo $sql;
   $pharmaciens = $bdd->prepare($sql);
   $pharmaciens->execute();

   $res = $pharmaciens->fetchAll(PDO::FETCH_OBJ);

   $i = 2;
   $temp_nombre_jours = 0;
   $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'NOM');
   $objPHPExcel->getActiveSheet()->SetCellValue('B1', 'PRENOM');
   $objPHPExcel->getActiveSheet()->SetCellValue('C1', 'TYPE OFFICINE');
   $objPHPExcel->getActiveSheet()->SetCellValue('D1', 'PAYS');
   $objPHPExcel->getActiveSheet()->SetCellValue('E1', 'PROVINCE');
   $objPHPExcel->getActiveSheet()->SetCellValue('F1', 'ADRESSE OFFICINE');
   $objPHPExcel->getActiveSheet()->SetCellValue('G1', 'CP OFFICINE');
   $objPHPExcel->getActiveSheet()->SetCellValue('H1', 'VILLE OFFICINE');
   $objPHPExcel->getActiveSheet()->SetCellValue('I1', 'TELEPHONE');
   $objPHPExcel->getActiveSheet()->SetCellValue('J1', 'MAIL');

   foreach($res as $donnees)
   {
     $styleArray = array('font' => array('bold' => true));

     //je mets en gras le contenu de ces cellules
    $objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('B1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('C1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('D1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('E1')->applyFromArray($styleArray);

    $objPHPExcel->getActiveSheet()->getStyle('F1')->applyFromArray($styleArray);

    $objPHPExcel->getActiveSheet()->getStyle('G1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('H1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('I1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('J1')->applyFromArray($styleArray);
    $objPHPExcel->getActiveSheet()->getStyle('K1')->applyFromArray($styleArray);

    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$i, $donnees->nom);
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$i, $donnees->prenom);


    if($donnees->ref_type_officine == 1)
    {
        $objPHPExcel -> getActiveSheet() -> setCellValue('C'.$i, 'Officine ouverte au public');    
    }
    else
    {
        $objPHPExcel -> getActiveSheet() -> setCellValue('C'.$i, 'Officine hospitaliere');    
    }

    //pays
    if($donnees->pays == 1)
    {
        $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, "BELGIQUE");    
    }
    elseif($donnees->pays == 2)
    {
        $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, "FRANCE");    
    }
    else
    {
        $objPHPExcel->getActiveSheet()->SetCellValue('D'.$i, "LUXEMBOURG");    
    }

     //province
     $objPHPExcel->getActiveSheet()->setCellValue('E'.$i, $donnees->prov);


     $objPHPExcel->getActiveSheet()->setCellValue('F'.$i, $donnees->addr_off);

     if($donnees->pays == 1)
     {
        $sql = "SELECT code_postal, nom as nom_ville FROM localite_be WHERE id = ".$donnees->code_postal_off;
     }
     elseif($donnees->pays == 2)
     {
        $sql = "SELECT code_postal, nom as nom_ville FROM localite_fr WHERE id = ".$donnees->code_postal_off;

     }
     else
     {
        $sql = "SELECT code_postal, nom as nom_ville FROM localite_lux WHERE id = ".$donnees->code_postal_off;
     }
     $cp_ville = $bdd->prepare($sql);
     $cp_ville->execute();

     $res_cp_ville = $cp_ville->fetch(PDO::FETCH_OBJ);

     $objPHPExcel->getActiveSheet()->SetCellValue('G'.$i, $res_cp_ville->code_postal);
     $objPHPExcel->getActiveSheet()->SetCellValue('H'.$i, $res_cp_ville->nom_ville);   



     $objPHPExcel->getActiveSheet()->SetCellValue('I'.$i, $donnees->telephone);
     $objPHPExcel->getActiveSheet()->SetCellValue('J'.$i, $donnees->mail);


     $i = $i+1;
   }//fin du foreach

   //redimensionnement des colonnes afin d'avoir des colonnes en autosize
   for($col = 'A'; $col !== 'L'; $col++)
   {
        $objPHPExcel->getActiveSheet()
        ->getColumnDimension($col)
        ->setAutoSize(true);
    }