Kung ang intensyon mo ay hindi payagan ang pag-insert ng mga record kung may error, maaaring mayroong isang maliit na pagkakamali sa lohika ng iyong code.
Sa kasalukuyan, ang kondisyon mo sa unang if statement ay nagche-check ng mga variable tulad ng $payee_name, $email_address, $username, at $password. Kapag ang mga ito ay totoong mga value, papasok sa loob ng if statement.
Pagkatapos, nag-check ka ng kondisyon sa $check_email_row at naglagay ng error message sa $payee_nameErr kung mayroong natagpuang parehong pangalan. Ngunit, sa susunod na else if statement, muli mong in-check ang $check_email_row (na maaaring nagdudulot ng hindi tama na kahulugan).
Ang tamang pagkakasulat ng iyong code ay ang sumusunod:
PHP:
if ($payee_name && $email_address && $username && $password) {
// Check if the name is already registered
$check_stmt = mysqli_prepare($con, "SELECT * FROM registration WHERE email_address = ? OR payee_name = ?");
mysqli_stmt_bind_param($check_stmt, "ss", $email_address, $payee_name);
mysqli_stmt_execute($check_stmt);
$check_result = mysqli_stmt_get_result($check_stmt);
$check_email_row = mysqli_num_rows($check_result);
if ($check_email_row > 0) {
$payee_nameErr = "Name or Email Address is already registered!";
}
}
Sa code na ito, ginamit ko ang "OR" operator sa query statement para makahanap ng mga katulad na pangalan o email address. Kung may natagpuan na record, maglalagay ka ng error message sa $payee_nameErr variable.
Tandaan na ang "OR" operator ay nagpapahintulot ng pagpasok ng code block kung mayroong kahit isa lamang sa mga kondisyon na totoo. Kaya naman, kung may natagpuang pangalan o email address sa database, papasok sa loob ng if statement at maglalagay ng error message.
Pag-asa ko ay matulungan ka ng aking pagsagot. Kung mayroon kang iba pang mga katanungan, huwag kang mag-atubiling magtanong.