首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时循环内部同时循环使用mysql获取

同时循环内部同时循环使用mysql获取
EN

Stack Overflow用户
提问于 2013-01-18 12:34:40
回答 2查看 884关注 0票数 0

我试图在一个while中运行一个while。当while循环运行到第五次时,它将检测数据库中的一个项。我要它把这个项目打印到第五个循环。

但是它会一直复制到循环的末尾(直到第31次)。

有人知道如何只在它第五次循环时才将它打印到循环中吗?而不是循环的尽头?

代码语言:javascript
复制
$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;
  }
}
EN

回答 2

Stack Overflow用户

发布于 2013-01-18 12:46:15

  1. 您可以随时从循环中break,或者测试循环条件中的标志(一旦找到结果就可以设置该标志);
  2. 您不需要以这种方式搜索结果,因为MySQL可以为您进行搜索(这要高效得多,特别是如果您已经定义了合适的索引);
  3. 您真的不应该再使用ext/mysql了--在PHPV5.5.0中,它已经被废弃,并将在将来被删除。

将其结合在一起,例如使用PDO:

代码语言:javascript
复制
$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;
票数 2
EN

Stack Overflow用户

发布于 2013-01-18 12:40:46

代码语言:javascript
复制
$num = 31
$i=0;
$is_found = false;
while($i<$num && $is_found == false){

  $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;

    $is_found = true;

  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14399099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档