2017-09-06 1 views
2

J'utilise PHPExcel pour exporter mes données de table pour un fichier ExcelPHPExcel ne donne pas toutes les données de Mysql

Dans mon code, je tente d'exporter à partir de 2 tables dans une feuille Excel mon travail de code, mais

Le problème est que j'ai toutes les données - 1

ce que je veux dire si j'ai 5 lignes doivent être dans le fichier Excel je reçois seulement 4

Voici mon code:

<?php 
$project=$_POST['project']; 


//populate the data 

$row=4; 
while($data=mysqli_fetch_object($query)){ 
$excel->getActiveSheet()->setCellvalue('A'.$row,$data->db_projectid) 
    ->setCellvalue('B'.$row,$data->db_projectname) 
    ->setCellvalue('C'.$row,$data->loc) 
    //incriment the row 
$row++;  
} 
//make table headers 
$excel->getActiveSheet() 
     ->setCellValue('A1','Project') 
     ->setCellValue('A3','#') 
     ->setCellValue('B3','Project Name') 
     ->setCellValue('C3','Location'); 

if(mysqli_num_rows($activitieQuery)>0){ 
    $row=7; 
while($data=mysqli_fetch_object($activitieQuery)){ 
$excel->getActiveSheet() 
    ->setCellvalue('A'.$row,$data->db_id) 
    ->setCellvalue('B'.$row,$data->db_activityname) 
    ->setCellvalue('C'.$row,$data->db_category) 
    ->setCellvalue('D'.$row,$data->db_priority); 

    //incriment the row 
$row++;  
} 
//make table headers 
$excel->getActiveSheet() 
     ->setCellValue('A6','Activities') 
     ->setCellValue('A7','#') 
     ->setCellValue('B7','Activity Name') 
     ->setCellValue('C7','Category') 
     ->setCellValue('D7','Priority'); 

} 
//write the result to a file 

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment; filename="project.xlsx"'); 
header('Cache-Control:max-age=0'); 
header('Cache-Control: max-age=1'); 
$file=PHPExcel_IOFactory::createWriter($excel,'Excel2007'); 
//output to php output instead of filename 
$file->save("php://output"); 
exit; 
?> 

Comment puis-je recevoir toutes les données que je veux sans aucun problème.

quand j'imprimer mysqli_num_rows($activitieQuery); j'ai numéro 5

et si j'imprime par exemple $data->db_id je reçois 5 ids pas 4

Mais quand je l'exportation d'un fichier Excel je reçois 4 ids pas 5 comment puis-je résoudre cette?

Pour ma première table je n'ai aucun problème mon problème est avec la deuxième table tbl_activities seulement une personne a une idée comment résoudre cela?

+0

S'il vous plaît couper votre code (enlever toutes les parties non essentielles de votre programme) . Cela sert à deux fins: vous pouvez exécuter un test élémentaire de votre côté, et il nous est plus facile de le lire. Par exemple, la partie de génération d'en-tête n'est pas pertinente et nous n'avons pas besoin de connaître chaque colonne de votre fichier de sortie. En outre, vous pouvez tester vos boucles en dehors du processus de génération Excel, car je doute que le problème soit lié à Excel lui-même (par exemple juste 'echo $ data-> db_id' dans les boucles). – RandomSeed

+0

@RandomSeed s'il vous plaît vérifier le code ci-dessus et dans ma boucle j'ai fait ce que vous dites echo $ data-> db_id et je reçois 5 ids pas 4 mais dans l'excel j'ai 4 et c'est mention dans ma question merci pour votre réponse –

Répondre

1

Vous commencez avec $row = 7; pour votre deuxième requête, puis de le remplacer par tête

->setCellValue('A7', '#') 
->setCellValue('B7', 'Activity Name') 
->setCellValue('C7', 'Category') 
->setCellValue('D7', 'Priority') 
->setCellValue('E7', 'Supplier') 
... 

donc remplacer $row = 7; avec $row = 8; devrait aider

+0

@Nikitia U merci beaucoup votre réponse m'aider et résoudre mon problème –