Проблема заключается в условии внутри оператора do-while. Конкретнее говоря, в данном коде условие внутри цикла while проверяет только наличие очередной записи в результате запроса, но не сравнивает ее содержимое с предыдущей записью, которую мы уже вывели.
Для исправления этой проблемы, можно изменить условие в цикле while следующим образом:
do {
echo 1;
} while($myrow = mysqli_fetch_assoc($result));
В этом случае мы будем последовательно получать записи из результата запроса и выводить "1" для каждой из них, пока не дойдем до конца результата.
Итоговый код будет выглядеть так:
require_once("connect.php");
$result = mysqli_query($conn, "SELECT * FROM `cards`");
$myrow = mysqli_fetch_assoc($result);
do {
echo 1;
} while($myrow = mysqli_fetch_assoc($result));
?>
Теперь этот код должен выводить "1" три раза для каждой записи в таблице.
<?php
require_once("connect.php");
$result = mysqli_query($conn, "SELECT * FROM `cards`");
$myrow = mysqli_fetch_assoc($result);
do {
echo 1;
}
while($myrow == mysqli_fetch_assoc($result))
?>
который должен выводить три раза "1", но выводит он только один раз, хотя в таблице 3 записи