Вы генерируете строку SQL в цикле:
for ($id = 1; $id <=$student_count_count; $id++)
{
$sql = ...;
}
Но вы выполняете ее только один раз, потому что это вне цикла:
if (mysqli_query($mysqli, $sql)) {
ПереместитеКоманда запроса внутри цикла:
for ($id = 1; $id <=$student_count_count; $id++)
{
$sql = ...
if (mysqli_query($mysqli, $sql)) {
...
} else {
...
}
}
В вашем цикле while также отсутствуют скобки:
while($row2 = mysqli_fetch_row($rcount_student_lists))
$student_count_count = $row2['0'];
Без фигурных скобок оператор while зацикливает только одну строку, следующую за ним.Чтобы зациклить более одной строки, вам необходимо заключить строки в фигурные скобки:
while($row2 = mysqli_fetch_row($rcount_student_lists))
{
$student_count_count = $row2['0'];
for ($id = 1; $id <=$student_count_count; $id++)
{
...
}
}
Также, пожалуйста, прочитайте о SQL-инъекция .Вместо построения запросов с конкатенацией строк используйте подготовленные операторы с привязанными параметрами .См. эту страницу и этот пост для некоторых хороших примеров.