[HELP] Login dengan mengecek 3 tabel berbeda ?

Saya membuat login halaman login, dan ada masalah pada login.phpnya halaman login saya terdiri dari "username", "password" dan combo box "level" (admin, guru, siswa) masing-masing level ada tabelnya.

seperti ini kodingnya:

<?php

$error='';

include "connection.php";
if(isset($_POST['submit']))
{
    $username   = $_POST['username'];
    $password   = $_POST['password'];
    $level      = $_POST['level'];

	if($level == "Admin")
	{
		$query = mysqli_query($connection, "SELECT * FROM tbl_pengguna WHERE username='$username' AND password='$password'");
		if(mysqli_num_rows($query) == 0)
		{
        $error = "Username or Password is invalid";
		}
		else
		{
				$row = mysqli_fetch_assoc($query);
				$_SESSION['username']=$row['username'];
				header("location: admin.php"); // Mengarahkan ke halaman profil
				}
		}
		else if($level == "Guru")
	{
		$query = mysqli_query($connection, "SELECT * FROM tbl_guru WHERE username='$username' AND password='$password'");
		if(mysqli_num_rows($query) == 0)
		{
        $error = "Username or Password is invalid";
		}
		else
		{
				$row = mysqli_fetch_assoc($query);
				$_SESSION['username']=$row['username'];
				header("location: guru.php"); // Mengarahkan ke halaman profil
				}
		}
		else if($level == "Siswa")
	{
		$query = mysqli_query($connection, "SELECT * FROM tbl_siswa WHERE username='$username' AND password='$password'");
		if(mysqli_num_rows($query) == 0)
		{
        $error = "Username or Password is invalid";
		}
		else
		{
				$row = mysqli_fetch_assoc($query);
				$_SESSION['username']=$row['username'];
				header("location: siswa.php"); // Mengarahkan ke halaman profil
				}
		}
		else
        {
            $error = "Failed Login";
        }

}
?>

avatar zahrandiaz
@zahrandiaz

3 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

2 Jawaban:

Jawaban Terpilih

Dirubah aja logika tabel nya menggunakan satu tabel dengan dengan penambahan kolom dengan nama tipe atau peran dimana isinya bisa 0,1 dan 2 yang mewakili dari admin,guru dan siswa sehingga query sql cukup 1 dengan menggunakan kondisi Where tipe=...

avatar teguhpribadia
@teguhpribadia

19 Kontribusi 11 Poin

Dipost 6 tahun yang lalu

Disingkat aja gan,


<?php

if($level == "Admin") {
    $table = "tbl_pengguna";
} elseif($level == "Guru") {
    $table = "tbl_guru";
} elseif($level == "Siswa") {
    $table = "tbl_siswa";
}

$sql = "SELECT * FROM ".$table." WHERE username = '$username' AND password = '$password'";
$query = mysqli_query($connection, $sql);

if(mysqli_num_rows($query) != 0){
    //Buat session dan redirect;
} else {
   //Muncul error login;
}

?>

Semoga membantu!

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban