当我使用while循环使用mysqli_fetch_array()打印特定列的值时,我从数据库中获得了正确的输出。
while($row=mysqli_fetch_array($data))
{
echo $row['name'];
}
但是当我使用下面提到的没有循环的代码时,输出是不同的。
$row=mysqli_fetch_array($data);
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
当我使用下面提到的代码时,我可以看到我使用mysqli_fetch_array()以关联数组的形式获取所有行。
$con=mysqli_connect("localhost", "root", "", "student_details");
$data=mysqli_query($con,"select * from `registration`");
while ($row = mysqli_fetch_array($data))
{
$rec[]=$row;
}
echo "<pre>";
print_r($rec);
echo "</pre>";
?>
我的问题是如何获取特定列的所有值(使用while循环),而不使用任何循环。
答案 0 :(得分:1)
您可以使用mysqli_fetch_all
获取所有数据。
签入php docs
- &GT; mysqli_result :: fetch_all - mysqli_fetch_all - - &GT;获取所有结果行作为关联数组,数字数组或两者
答案 1 :(得分:0)
使用PDO
$stmt = $pdo->prepare("SELECT * FROM registration");
$stmt->execute();
$array = $stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($array);
答案 2 :(得分:0)
您可以使用mysqli_fetch_all
获取阵列中的所有数据,但可能需要使用foreach
进行进一步操作。
$con=mysqli_connect("localhost", "root", "", "student_details");
$data=mysqli_query($con,"select * from `registration`");
$row = mysqli_fetch_all($data, MYSQLI_ASSOC);
echo "<pre>"; print_r($row); die;
// Will show all data coming in $row as Array
如需进一步处理,您可能需要使用如下的foreach:
foreach ($row as $item) {
print_r($item); // see what your item contains
}
答案 3 :(得分:0)
首先,这段代码:
while($row=mysqli_fetch_array($data))
{
echo $row['name'];
}
不等同于:
$row=mysqli_fetch_array($data);
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
echo $row['name'];
而是像(伪代码):
$row = mysqli_fetch_array($data);
if (!$row) return; //break the loop
echo $row['name'];
$row = mysqli_fetch_array($data);
if (!$row) return; //break the loop
echo $row['name'];
...
您可以使用多个mysqli_fetch_array()
调用来实现您的需求,但还有其他方法可以实现它。其中之一是mysqli_fetch_all()
的用法。两者都以类似的方式工作,但mysqli_fetch_all()
返回从查询中收到的所有结果的数组,而不是一次一个结果。
现在,它返回一个数组数组,以便访问它,而不是:
$row['name'];
您需要使用:
$row[ROW_NUMBER]['name']
//example
$row[0]['name']
示例:
1)mysqli_fetch_array()
$row = mysqli_fetch_array($data);
echo $row['name']; //output name from the first row
$row = mysqli_fetch_array($data);
echo $row['name']; //output name from the second row
2)mysqli_fetch_all()
$row = mysqli_fetch_all($data);
echo $row[0]['name']; //output name from the first row
echo $row[1]['name']; //output name from the second row