• Корректно ли составлен запрос?

    Mehannik
    @Mehannik Автор вопроса
    Если сформулировать вопрос так: необходимо узнать есть заказ от заказчика с полученными ФИО, номером телефона или эл. почты на определённую дату.
    С учётом замечаний, запрос приобрёл вид:
    function connectDB() {
        try {  
            $DB = 'mysql:host='.DB_HOST.';dbname='.DB_NAME;
            $conn = new PDO($DB, DB_USER, DB_PASSWORD);  
            $conn ->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
            return $conn;
        }  
        catch(PDOException $e) {
            $errorMessage = 'Ошибка подключения к базе данных';  
            file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
            throw new Exception($errorMessage);
        }
    }
    
    function getParameters($default = '') {
        $data = [
            'surname' => isset($_POST['surname']) ? trim(mb_strtolower("%{$_POST['surname']}%")) : $default,
            'name' => isset($_POST['name']) ? trim(mb_strtolower("%{$_POST['name']}%")) : $default,
            'fathername' => isset($_POST['fathername']) ? trim(mb_strtolower("%{$_POST['fathername']}%")) : $default,
            'phone' => isset($_POST['phone']) ? trim(preg_replace('/[^0-9,+]/', '',($_POST['phone']))) : $default,
            'email' => isset($_POST['email']) ? trim(mb_strtolower($_POST['email'])) : $default,
            'date' => isset($_POST['date']) ? trim(mb_strtolower($_POST['date'])) : $default,
        ];
        return $data;
    }
    function checkPeople($data,$conn){
        $query = "SELECT *
            FROM `orders` 
            WHERE ((LOWER(`surname`) LIKE ?
            AND LOWER(`name`) LIKE ?
            AND LOWER(`fathername`) LIKE ?)
            OR (LOWER(`email`) LIKE  ?) 
            OR (`phone` LIKE ?))
            AND (`date` = ?)
            LIMIT 1";
        $stmt = $conn -> prepare ($query);
        $stmt->execute([$data['surname'], $data['name'], $data['fathername']], $data['email'], $data['phone'], $data['date']);
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
    }

    Надеюсь верно)
    Ответ написан
  • Не открывается всплывающее окно оплаты в чём может быть ошибка?

    Mehannik
    @Mehannik Автор вопроса
    Разобрался с возникшей ошибкой. Ошибка возникала из-за того, что был реализован следующий подход: после регистрации заказа появлялась кнопка оплатить заказ онлайн Сбербанк, после нажатия на которую выполнялся ajax запрос на регистрацию заказа и в случае успеха открывалась страница оплаты заказа но так как mozilla блокирует открытие новых окон не по прямому действию on click пользователя, то соответственно окно блокировалось пришлось переделать код.
    alekssamos всё равно спасибо за помощь.
    Ответ написан
    Комментировать
  • Как сделать конструктор товаров?

    https://www.youtube.com/watch?v=i8qU5S0ImW8 посмотри тут не в качестве рекламы но очень понятно автор объясняет
    Ответ написан
    Комментировать
  • Не могу разобраться с обработкой в массиве?

    Mehannik
    @Mehannik Автор вопроса
    Может кому нибудь будет полезно решил вопрос следующим образом по совету Романа:
    // Валидация формы
        function _validate() {
            var isValid=false;
            var formData = ui.$orderForm.serializeArray();
            //console.log(formData);
            formData.every(function(value,index,formData){
                if (formData[index].value !=='') { 
                    //console.log(formData[index].value)
                    return isValid=true
                }
                else {
                    isValid=false;
                }
            });
            //console.log(isValid);
            return isValid;        
        }
    Ответ написан
    Комментировать