Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корзина на PHP, Куда девать количество 
:(
    Опции темы
Dajna
  Дата 22.11.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 20.11.2006

Репутация: нет
Всего: нет



Вот у меня такая проблема, никак не могу разобраться...
Есть корзина - таблица MySQL. А куда записывать количество? Можно конечно и в таблицу, но тогда как изменить значение, если клиент его изменит. Никак не могу это осмыслить, помогите, пожалуйста!
Может есть какой-то другой способ?
PM MAIL   Вверх
-=Ustas=-
Дата 22.11.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Ничего не понял.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Dajna
Дата 22.11.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 20.11.2006

Репутация: нет
Всего: нет



вот мой код:
Код

<?
global $add, $kod, $kol;
$ip=$_SERVER['REMOTE_ADDR'];
$conn = mysql_connect("localhost","root","") or die("Невозможно установить соединение: ". mysql_error());
mysql_select_db("energo");

if (isset($_GET['add']))
{
$add=$_GET['add'];
//$ip = trim($ip);
//$add = trim($add);
//$resultat = mysql_query("SELECT kod FROM bag", $conn);
//while ($row = mysql_fetch_array($resultat)) {
//$kod=$row['kod']+1;}
$guery = mysql_query("insert into bag values ('$kod' , '$ip' , '$add' )", $conn);
$kol=1;
if (isset($_POST['kol'])){
$kol=$_POST['kol'];
$price=$_POST['price'];
}
//$sum=$price*$kol;
}

Elseif (isset($_GET['ud'])) {
$ud=$_GET['ud'];
$guery = mysql_query("delete from bag WHERE id_products = '$ud' and ip='$ip'", $conn);
if (isset($_POST['kol'])){
$kol=$_POST['kol'];
$price=$_POST['price'];
}
//$sum=$price*$kol;
}

$result = mysql_query("SELECT DISTINCT bag.id_products, products.name, products.ed, products.price 
FROM bag INNER JOIN products ON bag.id_products = products.id_products WHERE bag.ip='$ip'", $conn);
if ($result<>"") 
{
echo "<table>\n";
echo "<tr>
<td class=katsh><p>Удалить</p></td>
<td class=katsh><p>Код</p></td>
<td class=katsh><p>Название</p></td>
<td class=katsh><p>Ед.</p></td>
<td class=katsh><p>Цена</p></td>
<td class=katsh><p>Количество</p></td>
<td class=katsh><p>Сумма</p></td>
<td class=katsh><p>Изменить<br>количество</p></td>
</tr>";
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td class=kat><p><a href='insertbag.php?ud=$row[id_products]'><img src=../pic[s]/bag.gif></a></p></td>";
echo "<td class=kat><p>".$row['id_products']."</p></td>";
echo "<td class=kat><p>".$row['name']."</p></td>";
echo "<td class=kat><p>".$row['ed']."</p></td>";
echo "<td class=kat><p>".$row['price']."</p></td>";
echo "<td class=kat><p>".$kol."</td>";
$sum=$row['price']*$kol;
echo "<td class=kat><p>".$sum."</p></td>";
echo "<td class=kat><p><center><form method=post action='alterbag.php?kod=$row[id_products]'><input type=submit value='Ok'></p></center></form</td>";
echo "</tr>";
$a=$a+1;
}
echo "</table>";
echo "<p>В вашей корзине ".$a." товара(ов) на сумму </p>";
mysql_close();
echo "<p><a href=prod.php class=menus>Еще</a> <a href=schet.php class=menus>Выписать счет
</a> <a href=insertbag.php class=menus>Очистить корзину</a></p>";  
}
else { echo "<p>Ваша корзина пуста</p>";
echo "<p><a href=prod.php class=menus>Назад</a>";} 
?>

Так вот.  Изначально количество =1. Предположим я записываю это в таблицу bag ( в скрипте пока этого нет). А потом пользователь нажимает на кнопку "Изменить количество товара" и в файле alterbag.php меняет количество. Но как изменить это самое количество в таблице bag? Есть ли какие-нибудь функции в sql?
PM MAIL   Вверх
ВасяТриллер
Дата 22.11.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 2.9.2005

Репутация: нет
Всего: 1



RTFM по запросу "UPDATE".
А вообще в вашем случае для получения кол-ва товаров достаточно запроса "SELECT count(*) FROM bag WHERE ip='$ip'", и никакие лишние поля не нужны
PM MAIL WWW ICQ AOL YIM   Вверх
Dajna
Дата 22.11.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 20.11.2006

Репутация: нет
Всего: нет



Нет ты немного не понял меня. Общее коичество я посчитаю. У меня вот в чем проблема:
Книга1 - заказывает n1 штук,
Книга 3 - заказывает n2 штук...
Так где эти n1, n2 хранить?
PM MAIL   Вверх
-=Ustas=-
Дата 22.11.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(Dajna @  22.11.2006,  16:38 Найти цитируемый пост)
Так где эти n1, n2 хранить? 

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


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Dajna
Дата 23.11.2006, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 20.11.2006

Репутация: нет
Всего: нет



-=Ustas=-, можешь вкратце рассказать что это такое и с чем едят? а там я разберусь...
PM MAIL   Вверх
SelenIT
Дата 23.11.2006, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Dajna, последний вопрос - про сессии? На мой взгляд, лучше всего о них написано в PHP FAQ: Сессии. Подробное описание работы и объяснение механизма..

Для корзины, пока юзер выбирает, добавляет и убирает товары - по-моему это действительно самое то. А уже когда он жмет кнопку "Заказать" - вот тут как раз пора внести инфу в базу...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Rezzonans
Дата 23.11.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 21.4.2005

Репутация: нет
Всего: нет



Если в двух словах, то в php существует встроенный хеш массив $_SESSION. Открыв сессию и записав в него значения можно хранить их на компьютере пользователя. Вот пример:

Код


<?php
session_start( );                                             #открываем сессию



 if ( isset( $_GET['name'] ) ){
        $_SESSION['name']    = $_GET['name'];                #Если переменная $_GET['name'] не пуста, помещаем её в $_SESSION['name']
        $_SESSION['counter'] = $_SESSION['counter'] + 1;     #Затем увеличиваем на 1 значение в $_SESSION['counter']

        #Далее соответственно выводим, сколько раз страница посещалась в течение данной сессии данным пользователем
        #так же выводим ссылку для уничтожения сессии и ссылку возврата на главную страницу

        ?>

            <h1>
            Привет,                <?= $_GET['name']        ?>,
            Вы посетили страницу    <?= $_SESSION['counter'] ?> раз
            </h1>

        <br>

            <a href = "?session_destroy=true">Уничтожить сессию</a>

        <br>

            <a href = "?">На главную</a>

        <?php
        exit;
     }

        #если вдруг ссылка "Уничтожить сессию" была нажата, уничтожаем сессию

 if ( $_GET['session_destroy'] === "true" ){
        session_destroy( );
        ?>

            <h1>Сессия уничтожена</h1>
            <a href = "?">На главную</a>

        <?php
        exit;
        }
?>
        <!-- выводим форму с полем name //-->

        <form>

            <input type = "text" name = "name">

                <br>

            <input type = "submit" value = "Отправить">

        </form>


запусти это скрипт и попробуй пообновлять страничку браузера.
--------------------
Первый детектор лжи был собран из ребра мужчины. Впрочем, до сих пор, никаких изменений не притерпел
PM MAIL   Вверх
SelenIT
Дата 23.11.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Цитата(Rezzonans @  23.11.2006,  16:41 Найти цитируемый пост)
Открыв сессию и записав в него значения можно хранить их на компьютере пользователя.


Rezzonans, ну откровенно врать-то зачем? smile


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0780 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.