What's new

Pwede ba ko mag dagdag

loktoy

Eternal Poster
Joined
Oct 20, 2014
Posts
1,168
Solutions
2
Reaction
103
Points
497
Age
30
anu tamang format kapag magdadagdag ako sa WHERE ng code

ito code ko
if tama

$check_stmt = mysqli_prepare($con, "SELECT * FROM registration WHERE email_address = ?" , 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);

tama po ba?
 
Ang tamang format para magdagdag ng kondisyon sa WHERE clause ng iyong code ay gamitin ang "AND" o "OR" para i-join ang mga kondisyon. Narito ang tamang format ng iyong code:

Code:
$check_stmt = mysqli_prepare($con, "SELECT * FROM registration WHERE email_address = ? AND 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);

Sa code na ito, binago ang query statement para magdagdag ng kondisyon na "AND payee_name = ?". Gamit ang "AND" ay nagrerequire ito ng parehong mga kondisyon na dapat matupad upang makabuo ng resulta. Kung gusto mo naman ng "OR" operation, puwede mong palitan ang "AND" sa query statement.

Tandaan na ang bilang ng mga placeholder '?' sa mysqli_stmt_bind_param() ay dapat tumpak na kasing dami ng mga binind na parameter sa query statement. Sa iyong kaso, may dalawang placeholders, kaya gumamit ako ng "ss" sa mysqli_stmt_bind_param() upang magtugma sa mga string (email_address at payee_name) na binind mo. Kung iba ang data type ng mga parameter, dapat mo itong baguhin.

Sana makatulong ito sa iyong katanungan! Kung mayroon kang iba pang mga katanungan, huwag kang mag-atubiling magtanong.
 
Ang tamang format para magdagdag ng kondisyon sa WHERE clause ng iyong code ay gamitin ang "AND" o "OR" para i-join ang mga kondisyon. Narito ang tamang format ng iyong code:

Code:
$check_stmt = mysqli_prepare($con, "SELECT * FROM registration WHERE email_address = ? AND 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);

Sa code na ito, binago ang query statement para magdagdag ng kondisyon na "AND payee_name = ?". Gamit ang "AND" ay nagrerequire ito ng parehong mga kondisyon na dapat matupad upang makabuo ng resulta. Kung gusto mo naman ng "OR" operation, puwede mong palitan ang "AND" sa query statement.

Tandaan na ang bilang ng mga placeholder '?' sa mysqli_stmt_bind_param() ay dapat tumpak na kasing dami ng mga binind na parameter sa query statement. Sa iyong kaso, may dalawang placeholders, kaya gumamit ako ng "ss" sa mysqli_stmt_bind_param() upang magtugma sa mga string (email_address at payee_name) na binind mo. Kung iba ang data type ng mga parameter, dapat mo itong baguhin.

Sana makatulong ito sa iyong katanungan! Kung mayroon kang iba pang mga katanungan, huwag kang mag-atubiling magtanong.
bat ganun diba kapag error ang isa o dalawa di papasok dapat sa database pero sa scenario ay pumapasok sila


ito code ko
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 = ? AND 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 is already registered!";
}else if ($check_email_row > 0) {
$email_addressErr= "Email Address is already registered!";
}
 
bat ganun diba kapag error ang isa o dalawa di papasok dapat sa database pero sa scenario ay pumapasok sila


ito code ko
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 = ? AND 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 is already registered!";
}else if ($check_email_row > 0) {
$email_addressErr= "Email Address is already registered!";
}
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.
 
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.
bat po dito is iisa na lang error nya

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!";
}
}


pano po kung yun Name ay wala kaparehaas at yun email ay may kaparehas or kaya yun Name ay may kaparehas at yun email ay wala same pa din sila ng error na lalabas kasi iisa code lang to
$payee_nameErr = "Name or Email Address is already registered!";
 
bat po dito is iisa na lang error nya

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!";
}
}


pano po kung yun Name ay wala kaparehaas at yun email ay may kaparehas or kaya yun Name ay may kaparehas at yun email ay wala same pa din sila ng error na lalabas kasi iisa code lang to
Kung ang intensyon mo ay ibahagi ang iba't ibang error message kung may iba't ibang pagkakamali sa mga field, maaaring magdagdag ka ng mga kondisyon upang ito ay maabot.

Narito ang isang halimbawa ng code na naglalaman ng mga kondisyon para sa mga posibleng errors:

PHP:
if ($payee_name && $email_address && $username && $password) {
    // Check if the name or email 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) {
        $errors = [];
        if ($check_email_row > 0) {
            $errors[] = "Email Address is already registered!";
        }
        if ($check_name_row > 0) {
            $errors[] = "Name is already registered!";
        }
        
        // Display the errors
        if (!empty($errors)) {
            $error_message = implode(" ", $errors);
            // Display the error message or do something else with it
        }
    }
}

Sa code na ito, nagdagdag ako ng isang array ng mga errors ($errors) kung mayroong mga overlapping na pangalan o email address. Pagkatapos, ginamit ko ang implode() function upang i-convert ang array ng mga errors sa isang string ($error_message). Maaari mo itong gamitin upang ipakita o gawin ang iba pang mga hakbang na may kinalaman sa error message.

Dapat mo rin isaalang-alang na kailangan mong dagdagan ang query mo upang makuha ang bilang ng rows para sa $check_name_row kung nais mong magkaroon ng kondisyon para sa pangalan:

PHP:
// Check if the name or email 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);
$check_name_row = mysqli_num_rows($check_result);

Pag-asa ko ay matulungan ka ng aking pagsagot. Kung mayroon kang iba pang mga katanungan, huwag kang mag-atubiling magtanong.
 
bat ganun diba kapag error ang isa o dalawa di papasok dapat sa database pero sa scenario ay pumapasok sila


ito code ko
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 = ? AND 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 is already registered!";
}else if ($check_email_row > 0) {
$email_addressErr= "Email Address is already registered!";
}

Code:
if ($check_email_row > 0) {

                $payee_nameErr = "Name is already registered!";

            }else if ($check_email_row > 0) {

                $email_addressErr= "Email Address is already registered!";

            }


Code:
if ($check_email_row > 0) {
                $payee_nameErr = "Name is already registered!";
}
if ($check_email_row > 0) {
                $email_addressErr= "Email Address is already registered!";
}

div <?php echo $payee_nameErr   ?>
div <?php echo $email_addressErr ''>

pero ayus din yung

Code:
function display_errors($errors=array()) {
  $output = '';
  if(!empty($errors)) {
    $output .= "<div class=\"errors\">";
    $output .= "Please fix the following errors:";
    $output .= "<ul>";
    foreach($errors as $error) {
      $output .= "<li>" . h($error) . "</li>";
    }
    $output .= "</ul>";
    $output .= "</div>";
  }
  return $output;
}


$errors = [];

// if check_email
$errors[] = "Email Address is already registered!";
// if check_name
$errors[] = "Name is already registered!";

markup

<?php echo display_errors($errors); ?>


papasok naman talaga sila sa db para e echeck yung email @ pass mo
base sa code base na ibinahagi mu.

if mali pag intindi ko

try mo debug
kung ano laman ang mga pumapasok

$payee_name && $email_address && $username && $password

Code:
echo var_dump($payee_name);
stop();
 
Last edited:

Similar threads

Back
Top