Как остановить эхо-оператор от многократного повторения во вложенных циклах

У меня следующая структура запроса

Состав

//note the value in $array isan array sent from the client side script
$q1 = mysqli_query($db,'query stuff')or trigger_error(mysqli_error());
if(mysqli_num_rows($q1) >=1 )
{
    while($row = mysqli_fetch_assoc($query)) // while loop 1
    {
        $q2 = mysqli_query($db,'query stuff') or trigger_error(mysqli_error());
        if(mysqli_num_rows($q2)>=1)
        {
            while($r=mysqli_fetch_assoc($2)) // while loop 2
            {
                for($i=0;$i<sizeof($array);$i++) // forloop
                {
                    if( \\validate conditions )
                    {
                        echo $i;//echoes 0101 instead of 01
                    }
                }
            }
        }
    }
}

Объяснение: Приведенный выше код содержит 2 цикла while и 1 for loop. Цикл for вложен в один цикл while, который, в свою очередь, вложен в другой цикл while. Когда я вывожу код ожидаемый вывод 01 но вместо этого он возвращает 0101

Как я могу остановить это от возникновения


Что я пробовал

я пробовал следующую структуру

            .....
            $tab_exists = false;
            while($r=mysqli_fetch_assoc(q2))//while loop 2
            {
                for($i=0;$i<sizeof($array);$i++) // for loop
                {
                       if(!$tab_exists)
                       {
                           echo $i;//echoes 00 instead of 01
                           $tab_exists = true;
                       }
                }
            }

Результат приведенной выше структуры: в приведенном выше коде $i в выражении не увеличивается

1 ответ

Попробуй это:

$q1 = mysqli_query($db,'query stuff')or trigger_error(mysqli_error());
$count =0;
if(mysqli_num_rows($q1) >=1 )
{
    while($row = mysqli_fetch_assoc($query))
    {
        $q2 = mysqli_query($db,'query stuff') or trigger_error(mysqli_error());
        if(mysqli_num_rows($q2)>=1)
        {
            while($r=mysqli_fetch_assoc($2))
            {
                for($i=0;$i<sizeof($array);$i++)
                {
                    if( \\validate conditions && $count<=2)
                    {
                        echo $i;//echoes 0101 instead of 01
                        $count++;
                    }
                }
            }
        }
    }
}
Другие вопросы по тегам