gpt4 book ai didi

php - while 循环内部带有 mysql fetch 的 while 循环

转载 作者:行者123 更新时间:2023-11-29 08:38:55 35 4
gpt4 key购买 nike

我正在尝试在 while 内运行 while。当 while 循环运行第五次时,它会检测到数据库中的一个项目。我希望它将该项目打印到第五个循环。

但是它会 self 复制直到循环结束(直到第 31 次)。

有谁知道如何仅在第五次循环时将其打印到循环中?而不是到循环结束?

$num = 31
$i=0;
while($i<$num){
$i++;
mysql_num_rows(mysql_query("SELECT * FROM webCalendar WHERE day='$i'"))
$sql = mysql_query("SELECT * FROM webCalendar WHERE day='$i'");
while($result = mysql_fetch_object($sql)) {
$info.= <<<EOD
$result->descrip
EOD;
}
}

最佳答案

  1. 您可以 break每当您需要时,都可以从循环中调用,或者测试循环条件中的标志(找到结果后设置);

  2. 您不需要以这种方式搜索结果,因为 MySQL 可以为您做到这一点(效率得多,特别是如果您定义了合适的索引);

  3. 您确实不应该再使用 ext/mysql — 它已从 PHP v5.5.0 起被弃用,并且将来会被删除。

把它们放在一起,例如使用 PDO:

$dbh = new PDO("mysql:dbname=$dbname", $username, $password);
$qry = $dbh->query('
SELECT descrip FROM webCalendar WHERE day = (
SELECT MIN(day) FROM webCalendar WHERE day BETWEEN 1 AND 31
)
');
while (($descrip = $qry->fetchColumn()) !== false) $info .= $descrip;

关于php - while 循环内部带有 mysql fetch 的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399099/

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