[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Корзина для интернет магазина
Страницы: 1, 2, 3
OleKh
А зачем добавлять в таблицу МАССИВ ? Добавить нужно ЗНАЧЕНИЯ id заказа, id товара, кол-
во товара. Проблема не в MySQL ЗАПРОСЕ, а в php коде.
alsmev
OleKh, все верно, я это и имею ввиду, Добавить нужно ЗНАЧЕНИЯ id заказа, id товара, кол-
во товара. а где ошибка в моем коде?

помогите решить проблему.. заранее спасибо
OleKh
Цитата
а где ошибка в моем коде?


тут в сессионную переменную добавляется количество товара
$_SESSION['basket'][$id]=$count; // ключ - айдишник товара, значение - количество товара

а тут, id товара присваивается кол-во товара
$id_tovar = $_SESSION['basket'][$id];

тут тоже самое, но присваивается переменной count
$count = $_SESSION['basket'][$id]=$count;


после $count можно добавить и посмотреть что в переменных

var_dump ($id_tovar);
var_dump ($count );
alsmev
NULL NULL выводит
OleKh
ну вот и ошибка, дальше можно проверить $_SESSION['basket'] и $id, а так же условия.
alsmev
В самом начале я выкладывал код откуда мы берем $_SESSION['basket'] и $id , видать я не правильный синтаксис сделал?
может ошибка из-за того что $_SESSION['basket'] и $id хранятся в файле cart.php , а не в zakaz.php ?
OleKh
$_SESSION['basket'] - сессионная переменная которая создается в начале скрипта как array.
Далее в эту переменную добавляется array с ключом $id = intval($_GET['id']
и значением $count , но при определенных условиях которые можно проверить.
Например вот так

if ($a>0) {
echo "1";
}else {
echo "2";
}
alsmev
не совсем понял что вы этим хотите сказать
OleKh
if(isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `id`='".intval($_GET['id'])."'"), 0) == 1) {
$id = intval($_GET['id']);
$count = isset($_POST['count'])? intval($_POST['count']) : 1; // если юзер выбрал количество - записываем, иначе - количество = 1
$_SESSION['basket'][$id]=$count; // ключ - айдишник товара, значение - количество товара

}


если $id_tovar = $_SESSION['basket'][$id]; выводит NULL значит или в сесионную переменную ничего не добавилось или $id пуста

Поэтому можно проверить выполняется ли условия
alsmev
Врядли, так как в сессии есть данные, они выводятся на странице cart.php

Может вероятней что они не передаются на страницу zakaz.php ?
OleKh
может так поможет

cart.php

if(isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `id`='".intval($_GET['id'])."'"), 0) == 1) {
$id = intval($_GET['id']);
$count = isset($_POST['count'])? intval($_POST['count']) : 1; // если юзер выбрал количество - записываем, иначе - количество = 1
$_SESSION['basket'][$id]=$count; // ключ - айдишник товара, значение - количество товара
$_SESSION['basket']['id_tovar']= $id ;
}


zakaz.php

if (isset ($_GET['act'])) {

$name=mysql_real_escape_string(htmlspecialchars(trim($_POST['name'])));
$tel=mysql_real_escape_string(htmlspecialchars(trim($_POST['tel'])));
$mail=mysql_real_escape_string(htmlspecialchars(trim($_POST['mail'])));
$city=mysql_real_escape_string(htmlspecialchars(trim($_POST['city'])));
mysql_query("INSERT INTO `zakaz` SET `name`='$name', `tel`='$tel', `mail`='$mail', `city`='$city';") or die(mysql_error());

$id_zakaz = mysql_insert_id();

$id_tovar = $_SESSION['basket']['id_tovar'];
$count = $_SESSION['basket'][ $id_tovar];
mysql_query("INSERT INTO `zakaz_tovar` SET `id_zakaz`='$id_zakaz', `id_tovar`='$id_tovar', `count`='$count';") or die(mysql_error());


}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.