Вы только что сбросили здесь свой полный код, поэтому я предполагаю, что у вас нет ни малейшего представления о том, где он терпит неудачу. Ну, это самый основной метод устранения неполадок: выделение части кода, которая работает не так, как ожидалось. В вашем случае интересные моменты:
1. SQL-запросы
Во-первых, во время отладки вы должны напечатать код SQL на экране и запустить его в своем любимом клиенте MySQL, чтобы убедиться, что он возвращает нужные вам данные.
Во-вторых, вам всегда нужно проверять возвращаемое значение mysql_query () и предпринимать действия в случае их неудачи (например, зарегистрировать mysql_error () и прервать сценарий).
2. Переменные
Используйте var_dump () , чтобы проверить ваши переменные и убедиться, что они располагают информацией, которую, по вашему мнению, они имеют.
3. PHPExcel
Даже не пытайтесь создать электронную таблицу Excel, пока не заполните $data
успешно.
Редактировать: Если вы следовали моему совету и напечатали свой SQL-запрос:
var_dump(
"SELECT * FROM mtable WHERE DataVersionDate='$datav' && Pathogen='$pathogen' && Topic='$topic1' && Indicator='$ind1' && IndicatorSubGroup='$subindg1' && (Country IN ('$sql_cntys') OR Location_Who IN ('$sql_cntys')) "
);
Вы бы уже знали, имеет ли $datav
правильное значение или нет. Если значение неверно, значит, вы знаете, что проблема здесь:
$datav=$_GET["datav"];
В противном случае вы можете забыть об URL. И так далее.