Сохраненные данные массива в строку с запятой (,)

0

[!] Проблема: всякий раз, когда я получаю данные из интерфейса и пытаюсь вставить в базу данных... данные вставляются как один алфавит в элективную ячейку... но мне действительно нужно, чтобы все данные были вставлены в выборную ячейка с разделенной запятой (,)

Изображение 174551

<?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.";
}

}
?>
  • 1
    implode может быть то, что вы ищете.
  • 1
    ПРИМЕЧАНИЕ. Размещение изображений в вашем вопросе не очень полезно, особенно если изображение было уменьшено до нечитаемого размера.
Показать ещё 1 комментарий
Теги:

1 ответ

2

Как уже говорилось в комментарии, вы можете 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();
  • 0
    я уже использовал implode (',', $ subjectcode); .... но не работает ... создает ли цикл for проблему ..............?
  • 0
    Вы меняете переменные. Сначала вы использовали $subjectcode в качестве массива, а теперь после редактирования вы пытаетесь получить доступ к каждому элементу строки в вашем запросе. Так что я не уверен, какие переменные вы должны использовать, где. Возможно, прокомментируйте свой код тем, что должна делать каждая намеченная строка, чтобы люди могли лучше понять это?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню