作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Mysql 查询中使用带有 while 循环的“return”函数,但它只返回一个结果。
我的数据库中有这个:
id name author
1 foo fooo
2 foo2 fooo2
它只返回“2”,但我想要“1”、“2”、“3”等..
这是我的代码:
function get_thm_cat() {
require 'database.php';
$req = $bdd->prepare("SELECT * FROM sk_cat ORDER BY id ASC");
$req->execute();
if ($req->rowCount() > 0) {
while ($row = $req->fetch()) {
return '<ul id="ul_cat"><li id="li_cat">'.$row["id"].' Name = '.$row["name"].'<br>';
}
}
$req->closeCursor();
}
最佳答案
与 return您停止执行该函数,这意味着当 PHP 第一次迭代循环并到达 return
时,它会立即返回到您最初调用该函数的位置。因此,当结果多于 0 行时,不会执行 while 循环的任何后续迭代,并且对 $req->closeCursor();
的调用也不会执行。
依次返回多个字符串的最简单方法是创建一个临时变量,在每次迭代时填充该变量并在循环后返回,如下所示:
$output = '';
while ($row = $req->fetch()) {
$output .= '<ul id="ul_cat"><li id="li_cat">'.$row["id"].' Name = '.$row["name"].'<br>';
}
return $output;
关于php - While 循环和函数使用 PDO 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30277869/
我是一名优秀的程序员,十分优秀!