jey_val_star
@jey_val_star
Программист

Что за глюк с бд?

Всем здрасте
Такой момент, есть магазин. Клиент сделал заказ - накидал в корзину товара и перешел оформлять. И во тут то самое интересное...
ajax передал данные из формы, сформировал массив для заполнения заказа, но сам заказ (запись в таблице) осталась без изменения
после отправил сообщение (smtp пришел новый заказ) и вернул результат true
а на почту пришла инфа - заказ новый - номер заказ null, цена 0, клиент - данные из формы...

Причем при оформлении заказа можно сразу зарегистрироваться и глядя по таблице в бд регистрация прошла успешно, запись есть и дата регистрации совпадает с датой оформления заказа...

Заказ не первый, а уже 2314-й (по id)...
Но такой глюк первый

сам код оформления
<?php 
  $name = $request->get('name');
  $email = $request->get('email');
  $phone = $request->get('phone');
  $reg = (int)$request->get('registration');
    
  $city = $request->get('city');
  $street = $request->get('street');
  $home = $request->get('home');
  $housing = $request->get('housing');
  $apartment = $request->get('apartment');
  
  $comment = $request->get('message');
    
  // если клиент хочет зарегистрироватся
  if($reg==1)
  {
    $password = $request->get('password');
    
    $userModel = new User();
    
    $resEmail = $userModel->getClientEmail($email);
    
    if(isset($resEmail['email']))// а такой емаил есть в бд...
    {
      return json_encode(['result'=>false]);  
    }
    
    $dataUserUpdate = [
      'name' => $name,
      'login' => $email,
      'email' => $email,
      'phone' => $phone,
      'password' => bcrypt($password),
      'active' => 1,
      'created_at'=>date('Y-m-d H:i:s')
    ];
    
    $userModel->updateClient($_SESSION['client_id'], $dataUserUpdate);
    
    $clAdModel = new ClientsAdress();
      
      $dataAdres = [
        'client_id'=>$_SESSION['client_id'],
        'main'=>1,
        'city'=>$city,
        'street'=>$street,
        'home'=>$home,
        'housing'=>$housing,
        'apartment'=>$apartment,
      ];
      
      $clAdModel->addAdress($dataAdres);
      
      $message = "Здравствуйте,
        
      Ваши учетные данные для доступа к сайту

      Логин: {$email}
      Пароль: {$password}

      ---
      С Уважением";
          
      Mailsend::sendEmail('Ваш доступ к сайту', $message, $email);
  }
    
    $other = 'Оплата: ' . $request->get('payment');
    $other .= "\nДоставка: ";
    
    // какая доставка выбрана
    $delivery = (int)$request->get('delivery');
    
    if($delivery == 2)
    {
      $other .= 'Курьерская доставка по СПб';
    }
    else if($delivery == 3)
    {
      $other .= 'Самовывоз';
    }
    else
    {
      $other .= 'Доставка по Ленобласти и РФ';
    }
    
    $message = $other . "\nКомментарий: ".$comment;
    
    $adress = 'Город: '.$city."\n".
    'Улица: '.$street."\n".
    'Дом: '.$home."\n".
    'Корпус: '.$housing."\n".
    'Квартира: '.$apartment;
    
    // получаем список продуктов из корзины через сессию
    $cartModel = new Cart();
    
    $prodts = $cartModel->getAllCart($_SESSION['client_id']);
    
    $total = 0;
    $messageMail = '';
    $prodmes2 = '';
    
    //формируем стоимость и скидки а также месседж в почту
    foreach($prodts as $row)
    {
      $total += $row->price * $row->count_prod;
      
      $messageMail .= $row->name . " - " . ($row->count_prod/10) . " кг \n";
      
      $prodmes2 .= $row->name . ' - ' . ($row->count_prod/10) . ' кг ' . ' - ' . ($row->price * $row->count_prod) . " руб.\n";
      
      $cartModel->updateProdID($row->cart_id, $row->prod_id,$row->count_prod,$row->price);
    }
    
    $priceDostavka = ($total < 3000 && $delivery == 2) ? 250 : 0;
    
    //обновили корзину
    $order = $cartModel->updateCart($_SESSION['client_id'], $message, $phone, $total, $adress, $name, $email, $priceDostavka,);

    $messageMail .= "-------------
Сумма заказа - {$total} руб.
Мы свяжемся с Вами ближайшее время\n
---
С Уважением";

$messageMail = "Здравствуйте,

Спасибо за Ваш заказ!
Заказ #{$order}
Состав:
-------------\n" . $messageMail;
    if($email != '')
    {
      Mailsend::sendEmail('Ваш заказ #'.$order.' на сайте', $messageMail, $email);
    }
    
    $messageMail2 = "---------------------
Заказ - {$order}
Сумму - {$total} руб.
Клиент - {$email}
Телефон - {$phone}
Комментарий - {$comment}
Дата заказа - ".date('d,m,Y H:i')."
Адрес: {$adress}
---------------------\n".$prodmes2;
    
    Mailsend::sendEmail('Заказ - '.$order, $messageMail2, 'mail@site.ru');
    
    return json_encode(['result'=>true);
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
//обновили корзину
    $order = $cartModel->updateCart($_SESSION['client_id'], $message, $phone, $total, $adress, $name, $email, $priceDostavka,);

запятая в конце? это правда парсеррор, тогда бы вообще не работало.

а так копайте начиная от $prodts = $cartModel->getAllCart($_SESSION['client_id']);
оттуда пустой массив получили
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.