Мой код не показывает errmsg, но не вставляет никаких данных в базу данных

Поэтому я пытаюсь сделать простой сайт электронной коммерции. После отправки формы (btn-submit) я не могу вставить какие-либо данные в свою базу данных. Работает только проверка адреса и контактного номера.

Вот мой код:

    if ( isset($_POST['btn-submit']) ) {

// clean user inputs
$oadd = trim($_POST['oadd']);
$oadd = strip_tags($oadd);
$oadd = htmlspecialchars($oadd);

$contact = trim($_POST['contact']);
$contact = strip_tags($contact);
$contact = htmlspecialchars($contact);// address validation
if (empty($oadd)) {
$error = true;
$oaddError = "Please enter a valid address.";
} else if (strlen($oadd) < 5) {
$error = true;
$oaddError = "Please enter a valid address.";
}

// contact number validation
if (empty($contact)) {
$error = true;
$contactError = "Please enter your contact number.";
} else if (strlen($contact) < 7) {
$error = true;
$contactError = "Contact number must have atleast 7 digits.";
} else if (!preg_match("/^[0-9 ]+$/",$lname)) {
$error = true;
$lnameError = "Please enter a valid contact number.";
}

// if there's no error, continue to place order
if( !$error ) {
$query = 'INSERT INTO cust_order(Order_Date, Order_Status, Order_Total , Address, Contact_No) VALUES (CURDATE(), "in process" , (SELECT SUM(p.Product_Price) FROM cart c, product p WHERE c.Prod_ID = p.Product_ID and c. User_ID = "'.$userRow['User_ID'].'"),"'.$oadd.'","'. $contact.'")';
$res = mysql_query($query);

if ($res) {
$errTyp = "success";
$errMSG = "Your order has been placed. To view the details, go to your order history";
unset($oadd);
unset($contact);
} else {
$errTyp = "danger";
$errMSG = "Something went wrong. Please try again later.";
}

}

}

Что может быть не так с моим кодом? Я делал похожие запросы на других страницах, но только этот не работает. Любая помощь будет принята с благодарностью! Заранее спасибо!

1

Решение

Попытайтесь понять поток кода:

if( !$error ) {
// This will only works when **$error is false and the not of false is true**, otherwise this block does not execute
}

Так что этот код работает только тогда, когда в вашем коде не возникает ошибка проверки и $error содержит false

0

Другие решения

//$userRow is not define any where...
//to check error occur or not :
echo $error;
if(!$error)
{
echo "IN IF";
//also go with die..
$res = mysql_query($query) or die();
}
else
{
echo "IN ELSE";
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector