我正在努力使用生成学校和教师的 XLSX 文件的 PHP 脚本。目标是生成一个包含几张纸的文件,每张纸是一所学校。每张纸上都有教师信息(姓名、姓氏、身份证、职位)
我有 2 个表:学校 (id,school_number,school_name,level) 教师 (id,school_number,name,last_name)
我的 php 代码是这样的:
$level = $_GET['level'];
$Sql= "select * from schools where level = '".$level."' order by school_number";
$Query = $PDO->prepare($Sql);
if($Query->Execute()){
while($Schools = $Query->fetch()){
$Sql = "select * from teachers where school_number = ".$Schools['school_number'];
$Query2 = $PDO->prepare($Sql);
if($Query2->Execute()) {
WHILE($Teachers = $Query2->fetch()) {
//GENERATE XLSX FILE WITH DATA
}
}
}
}
这不是我的实际代码,仅用于演示,您可以大致了解它的作用,而不会太深入兔子洞。
它将根据学校级别生成一个文件,例如一个用于小学,一个用于高中,以此类推。
所以,我遇到的问题不一定是编程,代码适用于大多数级别。它制作文件并正确放置数据。
但是,在处理某个级别(比如小学)时,学校比其他级别多得多(大约 400 所,是其他级别的 4 倍),while 循环变得太慢并且它不会生成输出文件.
我尝试将最大执行时间设置为原始值的两到四倍,也是 ram。没有什么不同。
一件奇怪的事情:我在第一个查询中添加了 LIMIT 300 并且它工作正常。创建的文件。即使在 LIMIT 350 时,它也能做到。当它超过这个数字时,它开始表现得很奇怪。
有什么想法可以解决这个问题吗?
慕哥9229398
泛舟湖上清波郎朗
冉冉说
随时随地看视频慕课网APP