Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Добавление всех товаров из корзины
Форумы портала PHP.SU » » Вопросы новичков » Добавление всех товаров из корзины

Страниц (1): [1]
 

1. Нордик - 17 Июня, 2018 - 13:39:21 - перейти к сообщению
Как сделать чтобы все записи добавлялись из корзины в бд? А то добавляется только последняя. Запись добавляется в бд. Надо чтобы на каждый товар была новая запись, кто шарит помогите пожалуйста...
PHP:
скопировать код в буфер обмена
  1. <h2 align="center">Оформление заказа</h2>
  2.  
  3. <?
  4. if($_SESSION['cart'] && !isset($_POST['order']))
  5. {
  6. ?>
  7. <form action="index.php?view=order" method="post" id="cart-form">
  8.  
  9. <table id="mycart" align="center" cellspacing="0" cellpadding="0" border="0">
  10.       <tr>
  11.             <th>Товар</th>
  12.             <th>Цена</th>
  13.             <th>Кол-во</th>
  14.             <th>Всего</th>
  15.       </tr>
  16.  
  17.       <? foreach($_SESSION['cart'] as $id => $quantity):
  18.          $product = get_product($id);
  19.       ?>
  20.        
  21.       <tr>
  22.           <td align="center"><?=$product['title'];?></td>
  23.           <td align="center"><?=number_format($product['price'],2);?></td>
  24.           <td align="center"><?=$quantity;?></td>
  25.           <td align="center"><?=number_format($product['price'] * $quantity ,2);?></td>
  26.       </tr>
  27.      
  28.       <?endforeach;?>
  29.      
  30. </table>    
  31.      <p class="total" align="center">Общая сумма заказа: <span class="product-price"><?=number_format($_SESSION['total_price'],2);?></span></p>
  32.      
  33.      <p align="center" style="color:  black;">
  34.  
  35. Ваше Имя:      <input type="text" name="name" required/>     Ваша Фамилия:      <input type="text" name="s_name" required/>     Ваш адрес:      <input type="text" name="address" required/>     Почтовый индекс:      <input type="text" name="post_index" required/>     Ваш e-mail:      <input type="text" name="email" /><br required/>
  36.      </p>
  37.    
  38.    
  39.      <p align="center"><input type="submit" name="order" value="Заказать" /></p>  
  40. </form>
  41.  
  42. <?
  43. }
  44. if($_SESSION['cart'] && isset($_POST['order']))
  45. {
  46.  
  47.     $pattern_name = '/^[a-zA-Zа-яА-ЯЁё]{1,32}$/u';
  48.     $pattern_index = '/^[0-9]{6}$/u';
  49.     $pattern_email = '/^[\w\.\-]+\@+[a-z]+\.+[a-z]{1,5}$/';
  50.     $pattern_addres = '/^[a-zA-Zа-яА-ЯЁё0-9\s\.]{1,100}$/u';// \s - пробел, точка
  51.     if (!empty($_POST['s_name'])){
  52.         if(!preg_match($pattern_name, $_POST['s_name'])){
  53.             $error = "Некорректно введёна фамилия"; //ошибка
  54.         } else {
  55.             $error = false; //ошибка не найдена
  56.         }
  57.     }
  58.     if (!empty($_POST['name'])){
  59.         if(!preg_match($pattern_name, $_POST['name'])){
  60.             $error = "Некорректно введно имя";
  61.         } else {
  62.             $error = false;
  63.         }
  64.     }
  65.     if (!empty($_POST['post_index'])){
  66.         if(!preg_match($pattern_index, $_POST['post_index'])){
  67.             $error = "Некорректно введён почтовый индекс" ;
  68.         } else {
  69.             $error = false;
  70.         }
  71.     }
  72.     if (!empty($_POST['addres'])){
  73.         if(!preg_match($pattern_addres, $_POST['addres'])){
  74.             $error = "Некорректно введён адрес";
  75.         } else {
  76.             $error = false;
  77.         }
  78.     }
  79.     if (!empty($_POST['email'])){
  80.         if(!preg_match($pattern_email, $_POST['email'])){
  81.             $error = "Некорректно введён email";
  82.         } else {
  83.             $error = false;
  84.         }
  85.     }
  86.  
  87.     if ($error === false) //Если ошибка не найдена, выполняется код
  88.     {
  89.  
  90.     foreach($_POST as $ArrKey => $ArrStr)
  91.     {
  92.         $ArrKey = $_POST[$ArrKey];
  93.     }
  94.     $date = date('Y-m-d');
  95.     $time = date('H:i:s');
  96.    
  97.     foreach($_SESSION['cart'] as $id => $quantity):
  98.     $product = get_product($id);
  99.         $query = mysql_query("INSERT INTO orders(name,s_name,address,post_index,email,date,time,product,prod_id,price,qty) VALUES ('$name','$s_name','$address','$post_index','$email','$date','$time','{$product['title']}','{$product['id']}','{$product['price']}','$quantity')");
  100.     endforeach;
  101.    
  102.     echo "<p align='center' style='color: #black;'>Ваш заказ успешно принят! Спасибо за покупку!</p>";
  103.  
  104.     }
  105.     else
  106.     {
  107.      //Если ошибка есть
  108.      echo "<p align='center' style='color: #black;'>ОШИБКА В ВВЕДЕННЫХ ДАННЫХ</p>";
  109.      }
  110. }
  111. ?>
  112. <?
2. Vladimir Kheifets - 18 Июня, 2018 - 10:09:35 - перейти к сообщению
Нордик пишет:
Как сделать чтобы все записи добавлялись из корзины в бд? А то добавляется только последняя. Запись добавляется в бд. Надо чтобы на каждый товар была новая запись, кто шарит помогите пожалуйста...
Спойлер (Отобразить)

Добрый день!
Вам нужно, для начала, убедиться в том, что в $_SESSION['cart'] есть все записи из корзины.
Если всё в порядке то, проверить если в структуре данных поле id PRIMARY KEY AUTO_INCREMENT
Спойлер (Отобразить)

Удачи!
3. lamokk - 25 Июня, 2018 - 13:04:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. до этой стоки выведите массив print_r($_SESSION['cart']) убедитесь что там все записи
  2. foreach($_SESSION['cart'] as $id => $quantity):
  3.     $product = get_product($id); //самой функции в коде нет, может она обнуляем ваш массив
  4.         $query = mysql_query("INSERT INTO

 

Powered by ExBB FM 1.0 RC1