@storm-coder

Товар не добавляется в корзину. Где ошибка?

Здравствуйте! Товар не добавляется в корзину. Где ошибка?

config.inc.php
<?php

			/* Основные настройки */

define(DB_HOST, "localhost"); 
define(DB_LOGIN, "root");
define(DB_PASSWORD, "12345");
define(DB_NAME, "eshop");
define(ORDERS_LOG, "orders.log"); 
$basket = []; // создаю пустой массив для хранения корзины пользователя
$count = 0; // для хранения количества товаров в корзине пользователя
$link = mysqli_connect(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_NAME); // соединение с БД и выбор БД 

// Отслеживаем ошибки при соединении с БД
if( !$link){
     echo 'Ошибка: '
          . mysqli_connect_errno()
          . ': '
          . mysqli_connect_error();
}


			/* / Основные настройки */


lib.inc.php
<?php

	// отфильтровать принятые из формы данные (в аргумент приходит дата/число)
function clearInt($data){
	return abs((int)$data);
}

	// отфильтровать принятые из формы данные (в аргумент приходит дата/число)
function clearStr($data){
	global $link; // соединение с БД установлено в "config.inc.php"
	return mysqli_real_escape_string($link, trim(strip_tags($data)));
}

	// функция сохраняющая новый товар в таблицу catalog:
function addItemToCatalog ($title, $autor, $bubyear, $price) { 
	global $link;// соединение с БД установлено в "config.inc.php"
	$sql = "INSERT INTO catalog (title, autor, pubyear, price)
		VALUES (?, ?, ?, ?)"; // запрос на вставку данных в таблицу каталог (title... - поля табли)

	// исполнить запрос на вставку даннных:
	if (!$stmt = mysqli_prepare($link, $sql)) {
		return false;	// если функция addItemToCatalog не отработала
		// msqli_prepare() - вот тебе запрос, подготовся, к нему будут идти данные
		// в $stmt прийдет объект или false
	}
	else { 
		mysqli_stmt_bind_param($stmt, "ssii", $title, $autor, $pubyear, $price); // привязывает переменные к параметрам подготавливаемого запроса ($stmt - кому передать параметры, "ssii" - параметры какого типа: str/int)
		mysqli_stmt_execute($stmt);	// А теперь, исполни подготовленный запрос с переданными параметрами
		mysqli_stmt_close($stmt);
		return true;
	}
}


save2cat.php
<?php
	// подключение библиотек
	require "secure/session.inc.php";
	require "../inc/lib.inc.php";
	require "../inc/config.inc.php";

	// Получите и отфильтруйте данные из формы:
$title = clearStr($_POST['title']);
$autor = clearStr($_POST['autor']);
$pubyear = clearInt($_POST['pubyear']);
$price = clearInt($_POST['price']);

	// Вызовите функцию addItemToCatalogдля сохранения нового товара в базе данных:
if(!addItemToCatalog($title, $author, $pubyear, $price)){
	echo 'Произошла ошибка при добавлении товара в каталог';
}
else {
	header("Location: add2cat.php"); // редирект (переадресация) на "add2cat.php"
	exit;
}
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
function addItemToCatalog ($title, $autor, $bubyear, $price)
mysqli_stmt_bind_param($stmt, "ssii", $title, $autor, $pubyear, $price);
Ответ написан
Ваш ответ на вопрос

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

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