• Есть код вставки в БД одной записи, как вставить список похожих записей?

    KodyWiremane
    @KodyWiremane
    Пони, Debian, LEMP, LAN, любитель
    В форме повторить по количеству учеников:
    <input ... name="idpupil[]">

    В скрипте вместо последней строки:
    foreach ($idpupil as $pupil) { mysqli_query($link, "INSERT INTO yoqlama(idpupil,date,come,idteacher) VALUES ('$pupil', '$date', '$come', '$idteacher')"); }

    Это максимально костыльный вариант.

    Более лучше:
    $prepared = mysqli_stmt_init($link);
    mysqli_stmt_prepare($prepared, "INSERT INTO yoqlama(idpupil,date,come,idteacher) VALUES (?, ?, ?, ?)");
    $pupil = 0;
    mysqli_stmt_bind_param($prepared, 'isii', $pupil, $date, $come, $idteacher);
    // 'isii' , если date — строка, а ID и come — целые числа ( https://www.php.net/manual/ru/mysqli-stmt.bind-param.php )
    foreach ($idpupil as $id) {
        $pupil = $id;
        mysqli_stmt_execute($prepared);
    }
    mysqli_stmt_close($prepared);


    Не уверен, но примерно так. Кроме того, появляется защита от SQL-инъекций, плохо просто брать из $_POST и вставлять в запрос. Хотя для внутреннего сайта школы, наверно, сойдёт, вряд ли там будет много хакеров.
    Ответ написан
    2 комментария