Всем привет! Голову сломал, но так и не решил: пытаюсь занести в БД через INSERT два товара одного заказа, но в таблицу попадает только один товар, две строчки никак... PHP: function saveOrder( $uid, $n, $p, $e, $a, $prod_id, $title,$dt){ global $link,$basket; $goods = myBasket();basketInit(); $uid=$basket['orderid']; foreach($goods as $item): $stmt = mysqli_stmt_init($link); $sql = 'INSERT INTO `orders`( uid, `name`, `phone`, `email`, `address`,`prod_id`, `title`, datetime)VALUES (?,?,?,?,?,?,?,?)'; if(!$stmt = mysqli_prepare($link, $sql)) return false; mysqli_stmt_bind_param($stmt, "ssssssss",$basket['orderid'], $n, $p, $e, $a,$item['prod_id'], $item['title'],$dt); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); return true; endforeach; mysqli_stmt_close($stmt); setcookie('basket','',time()-3600); return true; } $goods = myBasket(); $n = clearStr($_POST['name']); $p = clearStr($_POST['phone']); $e = clearStr($_POST['email']); $a = clearStr($_POST['address']); $dt=date('Y-m-j H:i:s'); foreach ($goods as $item): $prod_id=$item['prod_id']; $title=$item['title']; $uid=$basket['orderid']; endforeach; if(!saveOrder( $uid,$n, $p, $e, $a, $prod_id,$title,$dt)) { echo 'Произошла ошибка при добавлении товара!'; } else{ echo 'Товар успешно добавлен'; } ?> Структура таблицы orders: PHP: id INT(11) NO PRI NULL AUTO_INCREMENT uid VARCHAR(11) NO NULL name VARCHAR(230) NO NULL phone VARCHAR(230) NO NULL email VARCHAR(100) NO NULL address VARCHAR(100) NO NULL prod_id INT(11) NO NULL title VARCHAR(100) NO NULL datetime TIMESTAMP NO NULL
PHP: <?php use Nouvu\Database\{ Lerma, LermaStatement, DriverEnum }; // vendor... $connect = Lerma :: create( driver: DriverEnum :: MySQLi ) -> setData( host: '127.0.0.1', username: 'root', password: 'root' ) -> setDatabaseName( 'php_test' ) -> setCharset( 'utf8' ) -> setPort( 3306 ) -> getLerma(); $items = [ [ 'Bar', 111 ], [ 'Foo', 222 ], ]; $sql = 'INSERT INTO `test`( `name`, `value` ) VALUES ( ?, ? )'; $connect -> prepare( $sql, $items ); Но это лишь фасад над mysqli. Используй PDO
Точно, благодарю! Не там цикл закончил! Бьюсь второй день, а оказыватся из-за такой "мелочи" сразу две проблемы решились! Про вышеизложенный код и PDO пока ничего не понял, нужно изучать..... Можно ещё вопрос, как к профессионалу - раньше, пока не начала исправлять, изучать код с записью в БД, при отправке заказа в корзине товар, куки обнулялись, а сейчас товар так и остаётся в корзине..... продолжение моего кода: PHP: if(!mysqli_stmt_prepare($stmt,$sql)) return false ; setcookie('basket','',time()-3600); return true;