Как проверить, существует ли уже пользователь в sweetalert2 / ajax

Я хотел бы спросить, как проверить, существует ли уже пользователь, и если пользователь уже существует в базе данных, sweetalert должен появиться с подробностями о том, что пользователь уже существует, я уже построил код, но я думаю, что ошибаюсь поскольку, когда я его выполнил, он временно добавляется в таблицу, а после обновления страницы он исчезает.

Обновлено: данные вставляются, если studentNumberId еще не доступен в базе данных, а оператор else, который должен срабатывать, когда пользователь уже существует в базе данных, не запускается.

addUser.js

$(document).ready(function(){
    $('#addStudent').click(function(e){
        e.preventDefault();
        Swal.fire({
            title: "Are you sure?",
            text: "New student will be added added!",
            icon: "success",
            showCancelButton: true,
            allowEscapeKey : false,
            allowOutsideClick: false
        }).then((result) => {
            if (result.isConfirmed) {
                var valid = this.form.checkValidity();
                if (valid){
                    // The studentNumberId should be the basis whether to know if the user is already existing
                    var studentNumberId = "studentNumberId"+$('#studentNumberId').val();
                    var studentFullName = $('#studentFullName').val();
                    var studentPassword = $('#studentPassword').val();
                    var studentEmail = $('#studentEmail').val();
                    var studentYearBlock = $('#studentYearBlock').val();
                        e.preventDefault()
                        $.ajax({
                            type: 'POST',
                            url: 'includes/model_addStudent.php',
                            data: {studentNumberId: studentNumberId,studentFullName: studentFullName,studentPassword: studentPassword,studentEmail: studentEmail,
                                studentYearBlock: studentYearBlock},
                            success: function(data){
                                // I tried to compare if the user is already existing via values of 1 and 0 and echo'ed it out on the server-side
                                if (data == "1"){
                                    $('#tbl_manageStudents').append(`
                                    <tr>
                                    <td>${studentNumberId}</td>
                                    <td>${studentFullName}</td>
                                    <td>${studentEmail}</td>
                                    <td>${studentYearBlock}</td>
                                    </td>
                                    <td>
                                        <input type = "submit" name = "viewStudents" id = "viewStudents" value = "View" class = "btn btn-info" 
                                        data-toggle = "modal" data-target = "#viewExistingStudents<?php echo $row["ID"];?>
                                        <input type = "submit" name = "deleteRecord" id = "deleteRecord" value = "Delete" class = "btn btn-danger" 
                                        data-toggle = "modal" data-target = "#deleteSelectedStudent<?php echo $row["ID"];?>
                                    </td>
                                    `);
                                    // swal if the user was successfully added
                                    Swal.fire({
                                        title: "Successfully Added!",
                                        text: "New student has been added!",
                                        icon: "success"
                                    }).then((result) => {
                                        if (result.isConfirmed) {
                                        $('#addModalStudent').modal('hide').find("input").val('');
                                        }
                                    });
                                    }
                                else {
                                    // swal if the adding failed.
                                    Swal.fire({
                                        title: "Adding Failed",
                                        text: "Student Already Existing",
                                        icon: "warning"
                                    }).then((result) => {
                                        if (result.isConfirmed) {
                                          $('#addModalStudent').modal('hide').find("input").val('');
                                        }
                                      });
                                }
                            },
                            error: function(xhr, thrownError, ajaxOptions){
                                Swal.fire({
                                    title: xhr,
                                    text: thrownError,
                                    icon: "info"
                                })
                            } 
                        });
                }
                else {
                    Swal.fire({
                        title: "Error!",
                        text: "Invalid Form",
                        icon: "warning"
                    });
                }
            }
            else {
                Swal.fire(
                'No Changes!',
                'No New Student has been added.',
                'info'
                )
            }
        });   
            });      
    });

а это моя серверная часть ...

addUser.php

<?php

if (isset($_POST)) {
    include 'connection.php';
    
    $student_id = $_POST['studentNumberId'];
    $student_name = $_POST['studentFullName'];
    $student_password = $_POST['studentPassword'];
    $student_email = $_POST['studentEmail'];
    $student_yearblock = $_POST['studentYearBlock'];

    $sqlChecker = "SELECT student_id FROM tbl_students WHERE student_id = ?;";
    $stmtChecker = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmtChecker,$sqlChecker)){
        echo "SQL Statement" . mysqli_stmt_error($stmtChecker);
    }
    else {
        mysqli_stmt_bind_param($stmtChecker, "s", $student_id);
        mysqli_stmt_execute($stmtChecker);
        $getResult = mysqli_stmt_get_result($stmtChecker);
        if ($getValue = mysqli_fetch_assoc($getResult) > 0){
            echo "1";
        }
        else {
            $sql = "INSERT INTO tbl_students(student_id,student_name,student_password,student_email,student_yrblock) VALUES (?,?,?,?,?);";
            $stmt = mysqli_stmt_init($conn);
            $stmtquery = mysqli_stmt_prepare($stmt,$sql);
            
            if (!$stmtquery){
                echo "Failed to add" . mysqli_stmt_error($stmt);
            }
            else {
                mysqli_stmt_bind_param($stmt, "sssss", $student_id, $student_name, $student_password, $student_email, $student_yearblock);
                mysqli_stmt_execute($stmt);
                echo "0";
            }
        }
    }    
}
else {
    echo 'No data found';
}

?>

Я пробовал эту логику, когда значение эха 1 было одним на стороне клиента, оно запускает оператор if, который сравнивает данные с 1, а в противном случае.

Что точно не работает с данным кодом?

Nico Haase 30.03.2021 15:07

Похоже, что фактической вставки в базу данных не происходит. Можете ли вы проверить это, запустив свой код и заглянув прямо в базу данных?

El_Vanja 30.03.2021 15:07

@NicoHaase Оператор else не срабатывает, когда пользователь существует. внутри функции успеха, else часть if data == "1"

Kai 30.03.2021 15:08

Если он не вставляется, значит, произошла ошибка. Посмотрите, как узнать фактическая ошибка mysqli.

El_Vanja 30.03.2021 15:08

Извините за путаницу, но я отредактировал свой пост, чтобы сделать его более понятным, спасибо.

Kai 30.03.2021 15:10

Пожалуйста, внесите все пояснения в свой вопрос, отредактировав его. Также удалите ненужные части или объясните, как это связано с JS.

Nico Haase 30.03.2021 15:11

В вашем вопросе много кода. Вы должны выполнить базовую отладку, чтобы сузить проблему - по крайней мере, чтобы определить, в JS или PHP проблема.

El_Vanja 30.03.2021 15:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
20
0

Другие вопросы по теме