2014-01-28 6 views
1

Я пытаюсь экспортировать некоторые данные в лист Excel с помощью PHPExcel. Однако это оставляет мне пустую страницу и ничего больше (я понимаю, что это нормально, однако загрузка также не запускается).Экспорт в Excel с PHPExcel и MySQL

EDIT: Открытие нового вопроса для остальной части этой проблемы. Спасибо за помощь в этом все!

Я делаю что-то неправильно здесь? Это мой код (обновлено согласно выше)

Задача: РЕШЕНИЕ. Ошибка: несоответствие имени переменной ($ RowCount против $ Rowcount).

<?php 
$download=""; 
if (isset($_GET['surveyid'])) { 
//Survey ID 
$download = $_GET['surveyid']; 
require_once('../Classes/PHPExcel.php'); 

$query=sprintf("SELECT b.question_id as qid, a.question as ques, b.response as response, count(b.response) as count 
FROM v3_sai.survey_responses b 
INNER JOIN v3_sai.survey_questions a ON a.id = b.question_id AND a.survey_id=%d 
group by b.response, a.question 
order by b.question_id;",GetSQLValueString($download,"int")); 
$resultdl= mysql_query($query) or die(mysql_error()); 
$objPHPExcel = new PHPExcel(); 
$objPHPExcel->setActiveSheetIndex(0); 
$rowcount=1; 
while($row = mysql_fetch_array($resultdl)){ 
    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowcount, $row['qid']); 
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowcount, $row['ques']); 
    $objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowcount, $row['response']); 
    $objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowcount, $row['count']); 
$rowCount++; 
} 
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
header('Content-type: application/vnd.ms-excel'); 
header('Content-Disposition: attachment; filename="file.xls"'); 
$objWriter->save('php://output'); 

} 
+0

Вы искали в журнале ошибок php, чтобы проверить наличие ошибок? ваш уровень предупреждения в php.ini установлен на E_ALL? разместите любые ошибки из этих двух источников. – Zak

+0

Уровень предупреждения установлен на E_ALL! Где я могу найти журнал ошибок php? –

+0

Если вы имеете в виду файл php_error в папке «Журналы» wamp, он пуст –

ответ

2

Вы сделали какую-то ошибку в вашем запросе:

"SELECT b.question_id as qid, a.question as ques, b.response as response, count(b.response) as count ..." 

Посмотреть на count(b.response) as count. Измените псевдоним count на другой.

Также удалите ; в конце запроса.

EDIT

GetSQLValueString Функция не определена и не является родным. Изменить код:

$query = "SELECT b.question_id as qid, 
       a.question as ques, 
       b.response as response, 
       count(b.response) as cnt 
      FROM v3_sai.survey_responses b 
      INNER JOIN v3_sai.survey_questions a 
      ON a.id = b.question_id 
       AND a.survey_id=".intval($download)." 
      group by b.response, a.question 
      order by b.question_id"; 

изменить также строку:

$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount, $row['cnt']); 
+0

Сделал эти изменения, все еще ничего :( –

+0

вы уверены, что '$ _GET ['surveyid']' не пуст? Пока я не вижу больше ошибки – voodoo417

+0

Да, я проверил это уже, его набор на «2» на данный момент –

1

пустые страницы, как правило, означает, display_errors выключен ... Что делает отладку боль.

Установите или добавьте следующее на свой php.ini и перезапустите сервер (p.s. если у вас есть несколько файлов php.ini, используйте функцию phpinfo(), чтобы убедиться, что вы редактируете правильный).

display_errors = On 

Я также включить ведение журнала ошибок, поэтому я могу найти ошибки и исправить их постфактум, так что этот php.ini редактирует файл позволит ему:

log_errors = On 
error_log = n:/uniservers/coral/php_errors.log (set your destination here). 

После того как вы ошибка отображения включена , это должно быть кусок пирога, чтобы вы могли найти ошибку.

Joey

+0

display_errors уже установлен на, так что log_errors –

+0

Какие ошибки вы видите в журнале ошибок? –

Смежные вопросы