Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) 1 [2] 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Корзина для интернет магазина
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




А зачем добавлять в таблицу МАССИВ ? Добавить нужно ЗНАЧЕНИЯ id заказа, id товара, кол-
во товара. Проблема не в MySQL ЗАПРОСЕ, а в php коде.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




OleKh, все верно, я это и имею ввиду, Добавить нужно ЗНАЧЕНИЯ id заказа, id товара, кол-
во товара. а где ошибка в моем коде?

помогите решить проблему.. заранее спасибо

Это сообщение отредактировал alsmev - 26.01.2013 - 15:11
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




Цитата
а где ошибка в моем коде?


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

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

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


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

var_dump ($id_tovar);
var_dump ($count );
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




NULL NULL выводит
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




ну вот и ошибка, дальше можно проверить $_SESSION['basket'] и $id, а так же условия.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




В самом начале я выкладывал код откуда мы берем $_SESSION['basket'] и $id , видать я не правильный синтаксис сделал?
может ошибка из-за того что $_SESSION['basket'] и $id хранятся в файле cart.php , а не в zakaz.php ?

Это сообщение отредактировал alsmev - 26.01.2013 - 15:45
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




$_SESSION['basket'] - сессионная переменная которая создается в начале скрипта как array.
Далее в эту переменную добавляется array с ключом $id = intval($_GET['id']
и значением $count , но при определенных условиях которые можно проверить.
Например вот так

if ($a>0) {
echo "1";
}else {
echo "2";
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




не совсем понял что вы этим хотите сказать
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




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 пуста

Поэтому можно проверить выполняется ли условия
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




Врядли, так как в сессии есть данные, они выводятся на странице cart.php

Может вероятней что они не передаются на страницу zakaz.php ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




может так поможет

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());


}

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




не помогло.. ((

Я думаю, может быть ошибка из-за того что колличество товаров и id находятся в файле cart.php ,
а файл zakaz.php имеет такой вид?

switch ($act)
{
default:
echo '<form action="zakaz.php?act=ok" method="post">
ФИО<br/>
<input type="text" name="name" maxlength="120" value=""/><br/>
Телефон<br/>
<input type="text" name="tel" maxlength="50" value=""/><br/>
Электронная почта<br/>
<input type="text" name="mail" maxlength="120" value=""/><br/>
Город<br/>
<input type="text" name="city" maxlength="120" value=""/><br/>
<input type="submit" class="ibutton" value="Ок" />'
;

break;


case 'ok':
$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];
$count = $_SESSION['basket'][$id]=$count;
mysql_query("INSERT INTO `zakaz_tovar` SET `id_zakaz`='$id_zakaz', `id_tovar`='$id_tovar', `count`='$count';") or die(mysql_error());
break;



Тоесть сессия не попадает в сам case 'ok' ?

Это сообщение отредактировал alsmev - 26.01.2013 - 16:47
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




cart.php можно изменить т.к. выше было написано, а zakaz.php

эти две строчки

 $id_tovar = $_SESSION['basket'][$id];

 $count = $_SESSION['basket'][$id]=$count;


заменить на

    $id_tovar = $_SESSION['basket']['id_tovar'];
$count = $_SESSION['basket'][ $id_tovar];

var_dump ($id_tovar. "<br/>". $count );


PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alsmev  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 19
Пользователь №: 36368
На форуме: 12 лет, 1 месяц, 27 дней
Карма:




теперь вывело string(5) ""
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
OleKh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 753
Пользователь №: 32032
На форуме: 12 лет, 11 месяцев, 19 дней
Карма: 18




Правильно, потому, что товар добавляется нажатием инпута или ссылки другой формы, после чего в сессию добавляется значение, а так только заказ передается.
Вот этого нет if(isset($_GET['id'])
Нет взаимосвязи. в общем это не просто сделать.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) 1 [2] 3  Ответ в темуСоздание новой темыСоздание опроса