而循环mysql/PHP超过了执行时间

而循环mysql/PHP超过了执行时间,php,mysql,loops,Php,Mysql,Loops,此while循环会导致致命错误:超出了30秒的最大执行时间。 查询正在运行。我在phpmyadmin中测试了查询 循环中没有任何内容可用于测试其内容是否导致错误。 看起来while循环重载了。似乎脚本加载时间太长(认为查询太长),没有看到循环无限的可能性 while($tags_db = mysqli_fetch_array(mysqli_query($link, "SELECT * FROM zk_terms WHERE parent_id = 1 AND parent_type = '

此while循环会导致致命错误:超出了30秒的最大执行时间。 查询正在运行。我在phpmyadmin中测试了查询

循环中没有任何内容可用于测试其内容是否导致错误。 看起来while循环重载了。似乎脚本加载时间太长(认为查询太长),没有看到循环无限的可能性

while($tags_db = mysqli_fetch_array(mysqli_query($link, 
"SELECT * 
FROM zk_terms 
WHERE parent_id = 1 AND parent_type = 'archive' AND taxonomy = 'tag'"))){

}

您每次迭代都要执行查询,然后
mysqli\u fetch\u array
只在每个循环中获取第一个结果。您必须将
mysqli\u query
移动到循环外部,并将其分配给一个变量。

您每次迭代都要执行查询,然后
mysqli\u fetch\u array
只在每个循环中获取第一个结果。您必须将
mysqli\u query
移出循环并将其分配给变量。

您需要修改代码:

$query = mysqli_query($link, 
"SELECT * 
FROM zk_terms 
WHERE parent_id = 1 AND parent_type = 'archive' AND taxonomy = 'tag'");

while($tags_db = mysqli_fetch_array($query)){
 // your code
}

您需要修改代码:

$query = mysqli_query($link, 
"SELECT * 
FROM zk_terms 
WHERE parent_id = 1 AND parent_type = 'archive' AND taxonomy = 'tag'");

while($tags_db = mysqli_fetch_array($query)){
 // your code
}

将mysqli_query命令放在while之外,并在变量中捕获结果。然后在while中将该变量与mysqli_fetch_数组一起使用


否则,每次检查while条件时,都会再次运行查询

将mysqli_query命令置于while之外,并将结果捕获到变量中。然后在while中将该变量与mysqli_fetch_数组一起使用


否则,每次检查while条件时,查询都会再次运行

while循环的目的是什么?它不是有限的-每次迭代都执行一个查询并从中获取第一行。如果您没有将所有内容都放在一行中,这对您来说也是显而易见的。我在while循环中没有留下任何内容来检查循环的内容是否导致了错误。但是仍然没有任何脚本在里面,它遇到了问题。你所说的@zerkms是我必须创建两行吗?第一行:
$tags\u db=mysqli\u fetch\u数组(mysqli\u查询($link,“SELECT*FROM zk\u terms,其中parent\u id=1,parent\u type='archive'和taxonomy='tag'))
第二行:
while($tags\u db)
?@TomGroot将查询字符串放在多少行上并不重要。。。阅读下面的答案。你想用while循环实现什么?它不是有限的——每次迭代你都要执行一个查询并从中获取第一行。如果您没有将所有内容都放在一行中,这对您来说也是显而易见的。我在while循环中没有留下任何内容来检查循环的内容是否导致了错误。但是仍然没有任何脚本在里面,它遇到了问题。你所说的@zerkms是我必须创建两行吗?第一行:
$tags\u db=mysqli\u fetch\u数组(mysqli\u查询($link,“SELECT*FROM zk\u terms,其中parent\u id=1,parent\u type='archive'和taxonomy='tag'))
第二行:
while($tags\u db)
?@TomGroot将查询字符串放在多少行上并不重要。。。阅读下面的答案。