Есть такой вот массив:
$books=array('Detective Comics № 27', 'Action Comics #1', 'All Star Comics #8', 'Showcase №4', 'All-American Comics #16', 'More Fun Comics # 73');
Вот такой цикл для заполнения столбца данными массива я использовал:
$i=0;
do {$episode=$books[$i];
$i++;
$conn->query("UPDATE `heroes` SET `the_first_appear_work`= '$episode' WHERE `id` = $i"); // для этого на единицу переменная и увеличивается, ведь нулевого id в таблице нет
}
while ($row=$result->fetch_assoc());
Цикл сработал - таблица базы данных заполнилась!
Выборка для вывода у меня происходит вот так:
$result = $conn->query("SELECT * FROM `heroes`");
Выводятся данные из таблицы базы данных на страницу у меня вот так:
while ($row=$result->fetch_assoc()) { ?>
<p> <b>ID: </b> <?php echo $row['id']?>
Name: <?php echo $row['name']?>
<?php if (!(empty($row['the_real_name']))) {echo "The real name: "; echo $row['the_real_name'];}?><br>
The artwork where they first appear: <?php echo $row['the_first_appear_work']?>
Year of the first appear: <?php echo $row['the_first_appear']?></p>
<a href=greeting.php?name=<?php echo $row['name'] ?>> Нажмите, чтобы поприветствовать героя </a><hr> // вот с этим другая проблема
<?php }
Сделал через параграфы, а не echo, чтобы стилизовывать. Да, условие взял отсюда. Ведь когда строки кончаются, то возвращается ложь и цикл, работающий на истине, останавливается.
Так вот столбец таблицы-то заполнился, а данные из таблицы - не выводятся вообще никакие и ошибок нет. Комментирую цикл заполнения - выводятся, в том числе с новыми данными массива, всё хорошо без цикла.
Вопрос: как сделать нормальный цикл, с каким нормальным условием, чтоб работал, и данные из базы на страницу выводились?
Следующий вопрос: вот там ссылка с методом Get передаёт данные, обрезав после пробела. Как сделать, чтобы она передавала данные с пробелом целиком?
$i<=($result->num_rows). А почему fetch_assoc() не работал при выводе данных, он что, одноразовый? – Максим Aug 07 '21 at 07:02