Codeigniter - 根据用户输入进行验证并检查数据是否存在于两个表中

Codeiginiter - Validate from user input and check if data exist in two tables

解释如下:

我有一个用于参与者 ID 的文本框,当用户进行输入时,它将检查 registered_user table,如果用户是已经注册,它会做第二次验证,检查用户是否做过测试,通过检查 tpa_test table.

用户测试后,数据将存储在tpa_testtable.

我可以使用以下代码检查 registered_user 上是否存在参与者 ID:

Models

    public function get_refid($refid)
    {
        $sql = $this->db->query("SELECT * FROM registered_user where refid='$refid'");
        $this->db->limit(1);

        $cek_refid = $sql->num_rows();

        if ($cek_refid > 0) {
            return false;
        }
        return true;
    }

Controller

function get_refid_exist() {
        if (isset($_POST['refid'])) {
            $refid = $_POST['refid'];
            //print_r($refid);die;
            $results = $this->M_Ujian->get_refid($refid);
            print_r($results);
            if ($results === TRUE) {
                echo '<div class="alert alert-danger" role="alert">ID Peserta salah atau tidak terdaftar</div>';
            } else {
                echo '<div class="alert alert-success" role="alert"><strong>ID Peserta ditemukan!</strong> Silahkan klik tombol selanjutnya.</div>';
            }
        } else {
            echo '<div class="alert alert-danger" role="alert">ID Peserta wajib diisi.</div>';
        }
    }

And this is my Ajax

$.ajax({
            type: "POST",
            url: "<?=base_url()?>Ujian/get_refid_exist".replace("http://", "https://"),
            data: $("#typingtestForm").serialize(),
            dataType: "html",
            cache: false,
            success: function (msg) {
              $('#msg').show();
              $("#msg").html(msg);
              if ($('#msg').text() == "ID Peserta ditemukan! Silahkan klik tombol selanjutnya.") {
                cekcookie();
                $('.sw-btn-next').prop("disabled", false);
              } else {
                $('.sw-btn-next').prop("disabled", true);
              }
            },
            error: function (jqXHR, textStatus, errorThrown) {
              $('#msg').show();
              $("#msg").html("<div class=\"alert alert-secondary\" role=\"alert\">" + textStatus + " " + errorThrown + "<\div>");
            }
          });

那么如何验证两个 table 中的值?

如果值在tableregistered_user而不在tabletpa_test,结果为真,

如果值在tableregistered_user并且在tabletpa_test 结果为假,

并且如果该值不在 tables registered_usertpa_test 中,则结果为假,

谢谢!

需要编写模型函数如下。 returns只有满足你的条件才为真。

public function get_refid($refid)
{
    $sql = $this->db->query("SELECT * FROM registered_user where refid='$refid'");
    $this->db->limit(1);
    $cek_refid = $sql->num_rows();

    $sql1 = $this->db->query("SELECT * FROM tpa_test where refid='$refid'");
    $this->db->limit(1);
    $cek_refid1 = $sql1->num_rows();

    if ($cek_refid > 0 && $cek_refid1 == 0 ) {
        return true;
    }
    return false;
}