Флажок INSERT в базу данных с помощью предложения WHERE

0

Я пытаюсь вставить этот флажок в базу данных, используя WHERE. Код перенаправляется без каких-либо ошибок. Но он не обновляется в базе данных. Когда я сниму флажок, строка будет удалена без каких-либо проблем для идентификатора. У меня только проблема с INSERT. Кажется, я не могу найти здесь проблему.

Код ниже работает без использования WHERE.

$bId = $_POST['fm_id']; // this is coming from the hidden input field
if (isset($_POST['fm_day_hid'], $_POST['fm_day'])) {
    $ckb = $_POST['fm_day'];
    for ($i = 0; $i < count($ckb); $i++){
        if(!empty($ckb)){
            $arrayMovies = $ckb[$i];
            $sql = "INSERT INTO checkbox_batchdays (cbx_days) 
            SELECT * FROM (SELECT '$arrayMovies') AS tmp WHERE NOT EXISTS 
            (SELECT cbx_days FROM checkbox_batchdays WHERE cbx_days = '$arrayMovies') 
            WHERE cbx_batchid='$bId'";

            $query = mysqli_query($con, $sql);
        }
    }
    foreach($_POST['fm_day_hid'] as $moviesHidden) {
        if(!in_array($moviesHidden, $_POST['fm_day'])){
            $sql = "DELETE FROM checkbox_batchdays 
            WHERE cbx_days='$moviesHidden' AND cbx_batchid = '$bId'";

            $query = mysqli_query($con, $sql);
        }
    }
}
else {
    $sql = "DELETE FROM checkbox_batchdays WHERE cbx_batchid = '$bId'";
    $query = mysqli_query($con, $sql);
}

if( $query ) {
    header("Location: ../../batches.php");
}
else {
    echo "Not Deleted!";
}
  • 0
    Сколько строк вы получите с помощью внутреннего запроса на выборку. Вы можете вставить только одну строку с таким запросом, иначе вам потребуется процедура сохранения
  • 0
    Вышеуказанный запрос работает с несколькими строками. Только пункт WHERE меня есть проблема.
Показать ещё 10 комментариев
Теги:

1 ответ

0

Вот ответ.

for ($i = 0; $i < count($ckb); $i++){
    if(!empty($ckb)){
        $arrayMovies = $ckb[$i];
        $sql = "INSERT INTO checkbox_batchdays (cbx_batchid, cbx_days)
                    SELECT * FROM
                        (SELECT '$bId', '$arrayMovies') AS tmp
                    WHERE NOT EXISTS
                        (SELECT cbx_batchid, cbx_days FROM checkbox_batchdays 
                        WHERE cbx_days = '$arrayMovies' AND cbx_batchid='$bId')";
        $query = mysqli_query($con, $sql);
    }
}

Ещё вопросы

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