PHP/MySQLi-结合for和while

PHP/MySQLi-结合for和while,php,loops,mysqli,Php,Loops,Mysqli,为了简单起见,我尝试将两个页面合并为一个页面,但是要做到这一点,我需要找到一种方法,将一个页面的for()循环与另一个页面的while()循环组合起来,以便它们以相同的方式工作 这就是他们目前的情况: for($i = 0; $i < $count; $i++) { 正如您所看到的,for()循环不是通过MySQLi查询进行循环,而是一个与数据库中的值相同的值数组 第二个while()循环从数据库中获取一组相同的值。然而,它们都必须保持现有的基础 我的问题是,这两个循环是否可以组合成一个

为了简单起见,我尝试将两个页面合并为一个页面,但是要做到这一点,我需要找到一种方法,将一个页面的for()循环与另一个页面的while()循环组合起来,以便它们以相同的方式工作

这就是他们目前的情况:

for($i = 0; $i < $count; $i++) {
正如您所看到的,for()循环不是通过MySQLi查询进行循环,而是一个与数据库中的值相同的值数组

第二个while()循环从数据库中获取一组相同的值。然而,它们都必须保持现有的基础

我的问题是,这两个循环是否可以组合成一个循环,同时仍然能够通过单个数据库和数组元素进行循环

提前感谢:)

编辑:根据要求,以下是循环的两种用法

if($grabWidget = $db->query("SELECT * FROM editor_widgets"))
{
    while($widget = $grabWidget->fetch_array())
    {
        $id = $core->input($widget[1]);
        $coords[0] = $core->input($widget[4]);
        $coords[1] = $core->input($widget[5]);
        $temp = $core->input($widget[2]);

        $content_out = $core->output($widget[3],true);

if(isset($\u POST['widgets']))
{
$widget=$_POST['widgets'];
$count=count($widget);
对于($i=0;$i<$count;$i++)
{
$id=$core->input($widget[$i][0]);
$content_in=$core->input($widget[$i][1]);
$coords[0]=$core->input($widget[$i][2][0]);
$coords[1]=$core->input($widget[$i][2][1]);
$temp=$core->input($widget[$i][3]);
$content\u out=$core->output($widget[$i][1],true);

新的简化页面必须具有从数组或MySQLi查询循环的能力。因此,基本上,我希望使用for()循环,并使其与MySQLi一起工作,同时添加一个interator
$I

$i=0;
while($widget = $grabWidget->fetch_array()) {
++$i;
// YOUR CODE
}

我不知道您为什么要这样做,但是您可以在
while
中增加
$i
,然后使用该
$i
遍历数组。两个页面都包含完全相同的代码,而其中一个页面循环通过AJAX请求来获取元素数组。而第二个页面仅获取此元素数组从数据库表中,我试图找到一种方法,将这个过程简化为一个页面usages@Ghost原始帖子已更新。是的,您仍然可以使用
data\u seek($i)移动当前行的指针
在for循环中,我不能在这里给出答案,因为我无法测试它,所以在这里回答就像在黑暗中射击,我没有数据集可以测试,实际上有两个部分,一个是确保
for
$\u POST
值小部件中的数组应该相同,然后两个是:内部操作在循环中,我认为它们是不同的。
$widget[$i][2][0]
然后在另一个循环中
$widget[2]
if(isset($_POST['widgets']))
{
    $widget = $_POST['widgets'];
    $count = count($widget);
    for($i = 0; $i < $count; $i++)
    {
        $id = $core->input($widget[$i][0]);
        $content_in = $core->input($widget[$i][1]);
        $coords[0] = $core->input($widget[$i][2][0]);
        $coords[1] = $core->input($widget[$i][2][1]);
        $temp = $core->input($widget[$i][3]);

        $content_out = $core->output($widget[$i][1],true);
$i=0;
while($widget = $grabWidget->fetch_array()) {
++$i;
// YOUR CODE
}