[!] Проблема: всякий раз, когда я получаю данные из интерфейса и пытаюсь вставить в базу данных... данные вставляются как один алфавит в элективную ячейку... но мне действительно нужно, чтобы все данные были вставлены в выборную ячейка с разделенной запятой (,)
<?php
include_once '../../config/db_connection.php';
include_once '../../config/functions.php';
include "autho.php";
include('../db_mysqli.php');
if (isset($_POST['submit'])) {
$username1 = $_POST['username'];
$username1 = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $username1);
$rollno = $_POST['register_no'];
$rollno = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $rollno);
$subjectcode = implode(',', $_POST['subject']); ;
date_default_timezone_set("Asia/Kolkata");
$today = date('g:ia \o\n l jS F Y');
$rollnos = array_map('strlen', $rollno);
$rollnos = min($rollnos);
if ($rollnos < 6) {
$error = 'Roll Number is too short.';
} else {
}
if (!isset($error)) {
for ($i = 0; $i < count($rollno); $i++) {
$sql = "UPDATE students SET elective='$subjectcode[$i]' WHERE register_number='$rollno[$i]'";
$result = mysqli_query($conn, $sql);
if ($result) {
header('Location:./?edu_camp=elective_student_update&success');
} else {
header('Location:./?edu_camp=elective_student_update&fail');
}
}
} else {
//echo "Sorry! something Wrong.";
}
}
?>
Как уже говорилось в комментарии, вы можете implode
ваш массив в строку с вставить его (DOCS).
Кроме того, вы используете MySQLi, но не используете связанные параметры, которые вы ДЕЙСТВИТЕЛЬНО должны использовать (docs).
// Concatenate all values together
$commaSeparatedList = implode(',',$subjectcode);
// Prepare your statement
$stmt = $mysqli->prepare("UPDATE students SET elective=? WHERE register_number=?");
// Bind the relevant parameters (not sure what the where clause should be here)
$stmt->bind_param('si', $commaSeparatedList, $i);
// Check if rows were affected
if ($mysqli->affected_rows > 0) {
// Success, rows were changed
}
// Execute and close the statement object
$stmt->execute();
$stmt->close();
$subjectcode
в качестве массива, а теперь после редактирования вы пытаетесь получить доступ к каждому элементу строки в вашем запросе. Так что я не уверен, какие переменные вы должны использовать, где. Возможно, прокомментируйте свой код тем, что должна делать каждая намеченная строка, чтобы люди могли лучше понять это?
implode
может быть то, что вы ищете.