gpt4 book ai didi

Php mysql 结果进入无限循环

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:33 25 4
gpt4 key购买 nike

您好,我在数据库中存储了 sql 查询结果。我必须检查是否有任何行包含字符串 'N;'然后应该执行下一个 sql 语句。我有很多这样的字符串,这就是为什么要执行我的下一个 sql 语句。我尝试了以下代码但是当我尝试运行代码时它会进入无限循环。谢谢。这是我的 PHP 代码:

while ($row = mysql_fetch_assoc($result)) {
$config= $row['configuration'];
if($config=='N;')
{
$sql="SELECT DISTINCT ad_news_texte.id, ad_news_texte.headline, ad_news.datum_archiv FROM autodo.ad_news_texte INNER JOIN autodo.ad_news_oe ON ad_news_texte.news_id = ad_news_oe.id_ad_news INNER JOIN autodo.ad_news ON ad_news_oe.id_ad_news = ad_news.id WHERE ad_news.datum_archiv BETWEEN curdate( ) - INTERVAL DAYOFWEEK( curdate( ) ) +28 DAY AND curdate( )";
$result = mysql_query($query, $myConnection);
}
else{
$html .= '<table id="news">
<a href="news.php?id=">
<p class="welcome-subheadline"> '. $config .'</p></a>
</table>';
}
}

最佳答案

您在循环条件中使用了 $result 并且还在循环中重新定义了它。这里的行为很可能是未定义的。这样看(伪代码):

$result = perform some query

while($result has some rows) {
do some stuff

$result = perform some other query
}

while 路由使用第一个 $result 值来跟踪它在哪里以及它在做什么。但是在循环中,您要用一些新查询的结果替换它。所以基本上,发生的事情是 while 循环无法跟踪它导致(在您的情况下)无限循环的位置。

解决方案是重写您的循环,这样您就不会破坏 PHP 用来跟踪的值。你如何做到这一点可能取决于循环周围的代码以及循环本身,所以我不确定什么是最好的。这是一个解决方案(同样是伪代码):

$keepLooping = true

while($keepLooping) {
$result = perform some query

do some stuff

if ($result meets some exit condition) {
$keepLooping = false;
}
}

关于Php mysql 结果进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com