[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выскажите мнение по поводу карзины
sebastjan
После долгих трудов озадачился по поводу карзины покупателя,
на чём их всё же лучше делать ,на сессиях или MySql.
Две недели колдовал, эадача была такая.
Карзина

1.прибавлять артикель
2.показывать сумму
3.показывать общую сумму всех заказов.
4.изменять в корзине количество заказов и выводить результат.
5. при подтверждении записывать в БД.
------------------------------------------------
Всё это проделал на сессиях.
1-сначало создавал массив
2-вносил в масив даные из артикля.
3-записывал результат в сессию.
если прибавлял товар то вносил в сессию и общий результат.
в блоке карзина выводил с кнопкой удалить то или иное.
-------------------------------------

Хочу ещё сказать что структура в MySql товара такова.
Таблица представляют из себя имена категорий и в каждой категории
имена полей , это имена артиклей.
Так что фишка использовать ID товара в сессии не прокатывала, так как ID
могли совпадать.
Использовал имена артиклей, так как они действилено уникальны.
Может я и ошибаюсь с методом но пока что для меня это доступней в понимании.
------------------------------
Прошу высказать своё мнение по поводу ,что же удобней с сессиями или MySql .

Лично я пришол к выводу что с MySql проще, не надо так много кода, массивов,
редактирования этих массивов.
С MySql -записал в временную таблицу Юзера заказ, редактировать проще простого.
Выводить результат ещё проще чем в сессии.

А как по вашему?







Спустя 4 минуты, 49 секунд (19.02.2011 - 00:04) Snus написал(а):
Куки.

Спустя 1 час, 46 минут, 18 секунд (19.02.2011 - 01:50) sebastjan написал(а):
Цитата (Snus @ 18.02.2011 - 21:04)
Куки.

Та с куки это та же канитель с массивами.

вот небольшой мой пример на сесси,не доработанный правда
<?
session_start();
header("Content-Type: text/html; charset=utf-8");
echo "<form action='list.php' method='post'>
<input name='id' value='NAME_AAAA' type='hidden'/> :Name Artikel
kolicestvo<input name='kol' type='text' size='3' value='1' maxlength='5'/>
<input name='preis' value='6' type='hidden'/> :Preis 6 eu 1xSt.
<input name='ok' value='ok' type='submit' /><br/><br/>
</form>
<form action='list.php' method='post'>
<input name='id' value='NAME_BBB' type='hidden'/> :Name Artikel
kolicestvo<input name='kol' type='text' size='3' value='1' maxlength='5'/>
<input name='preis' value='6' type='hidden'/> :Preis 6 eu 1xSt.
<input name='ok' value='ok' type='submit' /><br/><br/>
</form>"
;
////////////////////////////////
if(isset($_POST['ok']))
{#if1
$nn=$_POST['id'];
global $in;
$in=array();
$in[0]=$_POST['id'];
$in[1]=$_POST['preis'];//kolicestvo
$in[2]=$_POST['kol'];
$in[3]=$_POST['preis'];
$_SESSION['all_sum']+=$in[3];
$_SESSION[$nn]=serialize($in);//zapis v sessiju['id'] massiva $kart
foreach($_SESSION as $key=>$value)
{//$foreach
global $in;
if($key=='all_sum'){$new_all=$value;}
else
{
$in=unserialize($value);//izvlecenie iz sessii ['id'] massiva kart
list($name, $preis, $stuk, $summa) = $in;
echo "<form action='list.php' method='post'>";
echo $name." - ". $preis. "EU Stuk".$stuk. " Preis = ".$preis*$stuk."EU
<input name=
\"inputname\" value='{$key}' type='hidden'/>
<input name='
{$key}' value='{$key}' type='hidden'/>
<input name='del' value='lцschen' type='submit'/></form><br>"
;
}
}
//$foreach
echo "<hr>".$new_all;
// print_r($_SESSION);
}#if1
///////////////////////////////////////////////////////////////////
if(isset($_POST['del']))
{#3
$dd=$_POST[$_POST['inputname']];
unset($_SESSION[$dd] );

foreach($_SESSION as $key=>$value)
{//$foreach
global $in;
if($key=='all_sum')
{#if2
$new_all=$value;
}#if2
else
{#else1
$in=unserialize($value);//izvlecenie iz sessii ['id'] massiva kart
list($name, $preis, $stuk, $summa) = $in;
echo "<form action='list.php' method='post'>";
echo $name." - ". $preis. "EU Stuk".$stuk. " Preis = ".$summa=$preis*$stuk."EU
<input name=
\"inputname\" value='{$key}' type='hidden'/>
<input name='
{$key}' value='{$key}' type='hidden'/>
<input name='del' value='lцschen' type='submit'/></form><br>"
;
}#else1
}//$foreach
echo "<hr>".$new_all;
//print_r($_SESSION);
}#if3
?>

Как мне кажеться реализация с Mysql в два раза короче и проще.
Какое ваше мнение?

Спустя 39 минут, 57 секунд (19.02.2011 - 02:30) inpost написал(а):
sebastjan
В итоге будет переполнение данных, это 1, а второе - как ты свяжешь с БД пользователя, который просто перегрузил компьютер?

Спустя 13 минут, 49 секунд (19.02.2011 - 02:44) sebastjan написал(а):
Цитата (inpost @ 18.02.2011 - 23:30)
sebastjan
В итоге будет переполнение данных, это 1, а второе - как ты свяжешь с БД пользователя, который просто перегрузил компьютер?

Ну так я понимаю что и при обрыве связи сессия улетает если без куки.
А какое же переполнение, это в лучшем случаи 20 покупателей одновременно делают заказ, да и то это фантастическое количество покупателей для магазина средненького.
А при уходе покупателя временная таблица будет удаляться и сам результат уже пропимываться в таблицу пользователя.
Я наверное не уточнил, имел ввиду использовать временную таблицу как карзину для покупателя.
Схема которую я представляю такова.
1-юзер логиниться и открываеться сессия в которой прописанн индификатор этого юзера.
2-делает заказ и тут создаёться таблица с именем юзера ил иным индификатором.
3-запись в таблицу и т.д.
Юзер открыл карзину, из таблицы вывод, редактирование, удаленик и т.д.
Юзер подтвердил, тогда запись в его личную таблицу и удаление временной.

Ну наверное так.

Спустя 44 минуты, 37 секунд (19.02.2011 - 03:28) inpost написал(а):
sebastjan
Ты всеми путями и не путями пытаешься отказаться от кук лишь по той причине, что мне подсказывает, что ты их просто боишься, хотя они один в один как сессии. Поэтому советую сделать именно на кукисах, а создавать таблицы - любой дурак сможет =)

Спустя 7 минут, 18 секунд (19.02.2011 - 03:36) sebastjan написал(а):
Цитата (inpost @ 19.02.2011 - 00:28)
sebastjan
Ты всеми путями и не путями пытаешься отказаться от кук лишь по той причине, что мне подсказывает, что ты их просто боишься, хотя они один в один как сессии. Поэтому советую сделать именно на кукисах, а создавать таблицы - любой дурак сможет =)

Да, правы я очень слабо пока знаком с куки, потому и боюсь даже обсуждать
пока не наберусь знаний.
Хорошо бы где нибудь немного подсмотреть хоть маленький пример карзины на куки.
Везде или сесии или Mysql


Спустя 45 минут, 18 секунд (19.02.2011 - 04:21) inpost написал(а):
$_SESSION['корзина'] - это массив, можно его серилизовать и добавлять, можно просто хранить в одной сессии через запятую id, да множество путей. Между сессией и кукисами разницы никакой, вообще никакой, просто сам код стоит почитать, как добавляется товар в сессию.
А насчет нигде нету - это и понятно, гомно не жалко, а ценностями не делятся, ты не найдешь чистого хорошего видео чата бесплатно, или урока о том, как проходит ренжировка в гугле, зато как разбить разделы на категории и подкатегории - тут миллионы Поповых =)

Спустя 10 часов, 40 минут, 18 секунд (19.02.2011 - 15:01) sebastjan написал(а):
Цитата (inpost @ 19.02.2011 - 01:21)
$_SESSION['корзина'] - это массив, можно его серилизовать и добавлять, можно просто хранить в одной сессии через запятую id, да множество путей. Между сессией и кукисами разницы никакой, вообще никакой, просто сам код стоит почитать, как добавляется товар в сессию.
А насчет нигде нету - это и понятно, гомно не жалко, а ценностями не делятся, ты не найдешь чистого хорошего видео чата бесплатно, или урока о том, как проходит ренжировка в гугле, зато как разбить разделы на категории и подкатегории - тут миллионы Поповых =)

Ну вот ,благодаря вам - за что и спасибо, про добавление через запятую в массив.
Как то не доходило....
Делал сложне, формировал сначало массив, потом грузил его в массив сесси.
По вашему это проще через запятую [id, количество, цена]=сумма

А что за тема про Попова, как то везде с заметным сарказмом об этом?
извеняюсь - за флуд.

Просессиии и куки немного с вами не соглашусь, это правда что сессии и куки массивы,
только куки вроде как на стороне клиента делают файл и пхп их читает и делоет то или это.
А сессии-файлы делаються на сервере.

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

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