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);
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
//обновили корзину
    $order = $cartModel->updateCart($_SESSION['client_id'], $message, $phone, $total, $adress, $name, $email, $priceDostavka,);

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

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

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

Войти через центр авторизации
Похожие вопросы