时间:2021-07-01 10:21:17 帮助过:6人阅读
$qst_id = $_GET['str'];
if ($qst_id) {
$qst_sql = "SELECT * FROM exam_qst WHERE qst_id='$qst_id'";
$query = $conn -> query($qst_sql);
$row = $query -> fetch_array();
$length = sizeof($row)/5;
$a = 0;
while ($a < $length) {
$i = 0;
echo "";
while ( $i< 5) {
$j = $i++;
echo "$row[$j] ";
}
echo " ";
$a++;
}
$query -> close();
}
$conn -> close();
如代码,每次查询数据库应该取出多行数据,但是mysqli_fetch_array跟mysqli_fetch_row似乎都只能返回一行数据。请问如何能将查询到的所有数据全部装到一个数组里。
$qst_id = $_GET['str'];
if ($qst_id) {
$qst_sql = "SELECT * FROM exam_qst WHERE qst_id='$qst_id'";
$query = $conn -> query($qst_sql);
$row = $query -> fetch_array();
$length = sizeof($row)/5;
$a = 0;
while ($a < $length) {
$i = 0;
echo "";
while ( $i< 5) {
$j = $i++;
echo "$row[$j] ";
}
echo " ";
$a++;
}
$query -> close();
}
$conn -> close();
如代码,每次查询数据库应该取出多行数据,但是mysqli_fetch_array跟mysqli_fetch_row似乎都只能返回一行数据。请问如何能将查询到的所有数据全部装到一个数组里。
$qst_id = $_GET['str'];
if ($qst_id) {
$qst_sql = "SELECT * FROM exam_qst WHERE qst_id='$qst_id'";
$query = $conn -> query($qst_sql);
$row = $query ->fetch_all();
foreach ($row as $vl){
echo "".$vl[1]." ".$vl[2]." ".$vl[5]." ".$vl[4]." ".$vl[6]." ";
}
$query -> close();
}
确实是需要遍历所有的结果集,自己用foreach来执行并成功返回了。还是谢谢 @捞鱼的转阿转
话说是mysql__fetch_array和mysql_fetch_row吧。他俩功能差不多,都是已数组的形式返回一行数据。
所以返回一行是没错的。你需要的是遍历所有的结果集,需要通过循环的帮助。
下面的给你参考
php
/** * 获取执行SQL所有数据 * @param [type] $sql 待执行 * @return [type] 执行返回结果 */ public function fetchAll($sql){ if ($result = $this->query($sql)) { $rows = array(); while ($row = mysql_fetch_row($result)) { $rows[ ] = $row; } mysql_free_result($result); return $rows; }else{ return false; } }