У меня следующая структура запроса
Состав
//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. Цикл for вложен в одно время, которое, в свою очередь, вложено в другой цикл 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 в выражении не увеличивается
Попробуй это:
$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++;
}
}
}
}
}
}
Других решений пока нет …