Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in

salahnya dimana ya?? padahal tutorial sudah saya ikutin mohon bantuannya gannnn

function registrasi($data)
{
    global $db;

    $username = strtolower(stripslashes($data["username"]));
    $password = mysqli_real_escape_string($db, $data['password']);
    $password2 = mysqli_real_escape_string($db, $data['password2']);

    //cek apakah nama yang didaftar sudah ada didatabase atau belum
    $result = mysqli_query($db, "SELECT * username FROM user WHERE username = '$username'");

    if (mysqli_fetch_assoc($result)) {
        echo "<script> alert('Nama sudah terdaftar') </script>";

        return false;
    }

    //cek apakah password sama

    if ($password !== $password2) {
        echo "<script> alert ('Password tidak sama!!') </script>";

        return false;
    }

    //enkripsi/mengamankan password sebelum masuk ke database

    $password = password_hash($password, PASSWORD_DEFAULT);

    // $password = md5($password, PASSWORD_DEFAULT);

    //masukkan data user baru ke database

    mysqli_query($db, " INSERT INTO user VALUES ('','$username','$password')");

    return mysqli_affected_rows($db);
}

avatar Sunset
@Sunset

18 Kontribusi 5 Poin

Diperbarui 5 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

ini mau select username nya ajh atau semuanya ?? kalo cuma usernamenya doang

<pre> SELECT username FROM user WHERE username = '$username' </pre> kalo mau semuanya

<pre> SELECT * FROM user WHERE username = '$username' </pre>

avatar driyan
@driyan

193 Kontribusi 109 Poin

Dipost 5 tahun yang lalu

Tanggapan

dua dua juga ga bisa gan

null itu karena si $resultnya gk ada isi apa , coba cek ulang

saran doang daripada menggunakan fetch_assoc lebih baik menggunakan num_rows

gini kak,kan saya buat menu register saya mau klau daftar nama ga boleh samakan,nah itu ketika saya query ke database lalu pas daftar nama ada yg salah maka akan nampil alert nama sudah dipakai,trus pas saya ikutin tutorial,malah jadi gitu trus nama bisa kembar dan masuk ke database, tolongi kak solusinya. makasih sebelumnya yaa

pake salah satu, kalo mau make dua2nya pisan dengan koma.

sudah di coba yg SELECT username FROM user WHERE username = '$username' tpi tetap saja : mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in

kalo mau kaya gitu mending make num_rows sih lebih gampang kalo lebih besar dari 0 berarti ada nama yang mirip, makenya juga tinggal if($result->num_rows > 0), untuk sekarang pastiin query nya berjalan dulu, coba di print_r atau var_dump

klau query berhasil jalan nilai true kan? kok saya false ya salahnya dmna lagi

coba run SELECT * username FROM user WHERE username = '$username' ini di phpmyadmin/heidisql, ganti $username make string biasa, bisa jalan kgk...

gan hendri18 saya salah input nama databasenya ,salah tulis didatabase saya nulisnya "user",tpi yang saya select "username" hahahaha makasih banyak ya mas hendri dah mw bantu ;)

Login untuk ikut Jawaban