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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Увеличение числа на 1, Хоть убейте, работает ОЧЕНЬ криво((( 
V
    Опции темы
Agares
  Дата 19.8.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Делаю я и-нет магазин, когда чувак добавляет товар в корзину, то счетчик должен увеличиться на единицу.
вот код:

Код

<?php

 include ("system.php");
 include ("config.php");

 $login = $_SESSION['login'];
 $gds = $_SESSION['gds'];
 $desc = $_SESSION['gds_desc'];
 $pay = $_SESSION['gds_pay'];

 if (!isset($_GET['act']))
 {
         $page_text = " ";
 }
 else
 {

         $act = $_GET['act'];
         if ($act == "add")
         {
                 $section = "gds_{$_GET['s']}";
                 $gdsb = $_GET['gds'];

                 if (!$mysql_id = mysql_connect($db_host,$db_user,$db_pass))
                 {
                         $page_txt = "Не пашет БД!";
                         exit(1);
                 }

                 mysql_select_db($db_name,$mysql_id);

                 $result = mysql_query("SELECT * FROM $section",$mysql_id);

                 while ($myrow = mysql_fetch_row($result))
                 {
                         if ($gdsb == $myrow[4])
                         {
                                 $gds = $_SESSION['gds'];
                                 $gds++;
                                 $_SESSION['gds'] = $gds;
                                 $page_text = "Добавлен товар! ";
                         }
                 }

                 //$page_text = "OK";
         }


 }

 //$page_text = " ";

 include("pages/ban.php");

 include("pages/menu.php");
 include("pages/auth_form.php");

 include("skins/skin.php");
 include("skins/{$skin}.php");

 echo $page;

?>


Когда чувак просто входит в корзину, то счетчик обнуляется, а когда добавляет товар то доходит до 1 и выше не подымается.


Это сообщение отредактировал(а) Agares - 19.8.2007, 17:28


--------------------
Мой ноут: Impression First 657
ОС: Gentoo Linux
PM MAIL WWW Skype GTalk   Вверх
HackMan
Дата 19.8.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



а где start_session()?


--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Agares
Дата 19.8.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Он прописан в system.php


--------------------
Мой ноут: Impression First 657
ОС: Gentoo Linux
PM MAIL WWW Skype GTalk   Вверх
SelenIT
Дата 19.8.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Agares, переменная
Код

 $gds = $_SESSION['gds']; // строка 7
где-нибудь ниже используется?

Зачем вообще переопределять все на свете? Зачем карусель с
Код

                                 $gds = $_SESSION['gds']; // строки 38-40
                                 $gds++;
                                 $_SESSION['gds'] = $gds;

, почему бы не сделать просто
Код

                                 $_SESSION['gds']++; // вот так? ;)

По-моему, отлаживать код и отслеживать значения станет проще...


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


Опытный
**


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

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



Изменил код:
Код

$login = $_SESSION['login'];
 //$gds = $_SESSION['gds'];
 $desc = $_SESSION['gds_desc'];
 $pay = $_SESSION['gds_pay'];

 if (!isset($_GET['act']))
 {
         $page_text = " ";
 }
 else
 {

         $act = $_GET['act'];
         if ($act == "add")
         {
                 $section = "gds_{$_GET['s']}";
                 $gdsb = $_GET['gds'];

                 if (!$mysql_id = mysql_connect($db_host,$db_user,$db_pass))
                 {
                         $page_txt = "Íå ìîãó ñîåäèíèòüñÿ ñ áàçîé äàííûõ!";
                         exit(1);
                 }

                 mysql_select_db($db_name,$mysql_id);

                 $result = mysql_query("SELECT * FROM $section",$mysql_id);

                 while ($myrow = mysql_fetch_row($result))
                 {
                         if ($gdsb == $myrow[4])
                         {
                                 $_SESSION['gds']++;

                                 $page_text = "<p align=\"center\">Òîâàð <b>$myrow[0]</b> áûë äîáàâëåí â âàøó êîðçèíó.<br>Öåíà äàííîãî òîâàðà <b>$myrow[0]</b> ãðí.</p>
                                              <br><br>
                                              <a href=\"basket.php\">[Îôîðìèòü çàêàç]</a>
                                              ";
                         }
                 }

                 //$page_text = "OK";
         }


 }


Тоже самое ...

Добавлено через 5 минут и 12 секунд
Он увеличивает до единицы и все ... больше не увеличивает(


--------------------
Мой ноут: Impression First 657
ОС: Gentoo Linux
PM MAIL WWW Skype GTalk   Вверх
HackMan
Дата 19.8.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Юзверь-программист
**


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

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



Вы точно уверены, что сессия нормально инициализируется?
Может start_session() вызывается неправильно?
Проверьте значения переменных
Код

 $login
 $gds
 $desc
 $pay



--------------------

Завтра - это самый загруженный день недели smile

user posted image

user posted image
PM MAIL ICQ   Вверх
Mal Hack
Дата 19.8.2007, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Agares, мой Вам совет. Реализуйте сессию через БД, отдавая пользователю только ID сессии. Так построен OSCommerce - лидер, на сегодняшний день, в области интернет-магазинов общего распространния...
У Вас будет проблем раз в 4-5 меньше, чем сейчас...
PM ICQ   Вверх
Agares
  Дата 19.8.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сессия нормально проходит ...
А не подскажете сам алгоритм сессий через БД?


--------------------
Мой ноут: Impression First 657
ОС: Gentoo Linux
PM MAIL WWW Skype GTalk   Вверх
Agares
Дата 19.8.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати, я вот тоже подумывал над тем, что бы через БД реализовать сэссию ...


--------------------
Мой ноут: Impression First 657
ОС: Gentoo Linux
PM MAIL WWW Skype GTalk   Вверх
aktuba
Дата 19.8.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

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



Цитата

А не подскажете сам алгоритм сессий через БД? 


Мне тоже интересно. Можно подробнее?


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 19.8.2007, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



А что подробнее. Создаем таблицу sessions с полями, которые нам нужны. Что раньше писали в сессию пишем в Базу, при этом для каждой записи записываем session_id, который идет пользователю и еще одно дополнительное поле - время записи, чтобы потом удалять старые. Все. Пользователь заходит, по пользовательскому сиду достаем запись в базе и работаем.
PM ICQ   Вверх
-=Ustas=-
Дата 19.8.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Но как мне кажется, стандартный механизм сессий будет работать быстрее, нежели с базой... разве нет?


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


Мудрый...
****


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

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



-=Ustas=-, скорее всего быстрее, но не намного, данные все равно в файл пишутся...
Зато надежность - на порядок выше. И удобство работы.
PM ICQ   Вверх
GiV
Дата 19.8.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

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



Собственно пример с сессиями в БД:

http://ru2.php.net/manual/ru/function.sess...ndler.php#60316

А вообще если о скорости, то лучше использовать shared memory
PM MAIL WWW ICQ   Вверх
WIPS
Дата 19.8.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(GiV @  19.8.2007,  21:53 Найти цитируемый пост)
А вообще если о скорости, то лучше использовать shared memory 

А можно поподробнее об этом?

--------------------
Автопроизводители, машины, марки, модели!
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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