Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как записывать в массив новые данные ?

Сообщения:  [1-10]   [11-17] 

 
 автор: cheops   (04.07.2012 в 13:43)   письмо автору
 
   для: kvins   (03.07.2012 в 15:42)
 

Задумка в создании двумерного массива

  Ответить  
 
 автор: confirm   (03.07.2012 в 18:30)   письмо автору
 
   для: kvins   (03.07.2012 в 18:28)
 

А я бы начал, так как код такой корзины годится только для мусорной корзины, не более, уж поверьте.

  Ответить  
 
 автор: kvins   (03.07.2012 в 18:28)   письмо автору
 
   для: confirm   (03.07.2012 в 17:57)
 

Это не мой код , если бы я хорошо понимал что с чем связано , то не написал бы

тока не могу понять где успело в этом коде добавится $i в $counts и $gids и куда еще можно подставить названия футляра и ленты

Ладно почитаю , но не охота все с нуля делать (

  Ответить  
 
 автор: confirm   (03.07.2012 в 17:57)   письмо автору
 
   для: kvins   (03.07.2012 в 17:44)
 

session_register это ни к чему - $_SESSION['name'] и все. И ваш код это слишком... Совет - забудьте пока о корзине и все что с ней связано, а зайти в раздел РНР - функции работы с массивами. Среди этих функций есть те, что намного упростят ваш код, седлают его более легким и удобным для различных операций с корзиной.
Как ознакомитесь с данным разделом, тогда можно будет и продолжить данную тему. Поверьте, то что я вам советую, сделать стоит, и даже обязательно.

  Ответить  
 
 автор: kvins   (03.07.2012 в 17:44)   письмо автору
 
   для: confirm   (03.07.2012 в 16:30)
 

вообще код такой при добавлении ,


 if (isset($add) && $add>0) { 

               
                if (!isset($gids)) {
                        $gids = array();
                        $counts = array();
                };
               
                $i=0;
                while ($i<count($gids) && $gids[$i] != $add) $i++;
                if ($i < count($gids)) 
                        $counts[$i]++;
                else { 
                        $gids[count($gids)] = $add;
                        $counts[count($counts)] = 1;
                };
                
                session_register("gids");
                session_register("counts");


                if (isset($order_step)) {
                        session_unregister("order_step");
                        unset($order_step);
                };
        };



$add == это и есть номер товара

тока не могу понять где успело в этом коде добавится $i в $counts и $gids и куда еще можно подставить названия футляра и ленты


$counts[$i] количество товаров

$gids[$i] номера товаров

а это я так понял если добавляют второй раз


 if (isset($update)) { 
                $vars = get_defined_vars();
                foreach ($vars as $key => $val)
                        if (strstr($key, "count_")) {
                                  
                                if ($val>0) {
                                        for ($i=0; $i<count($gids); $i++)
                                                if ($gids[$i] == str_replace("count_","",$key)) {
                                                        $counts[$i] = $val;
                                                };
                                }
                                else { 
                                        $i=0;
                                        while ($gids[$i] != str_replace("count_","",$key) && $i<count($gids)) $i++;
                                        $gids[$i]=0;
                                        
                                        session_register("gids");
                                        session_register("counts");
                                };
                          };

                
                if (isset($order_step)) {
                        session_unregister("order_step");
                        unset($order_step);
                };

        };



ну и удаление


if (isset($remove) && $remove>0) {
$i=0;
while ($i<count($gids) && $gids[$i] != $remove) $i++;
if ($i<count($gids)) $gids[$i]=0;

session_register("gids");
session_register("counts");


if (isset($order_step)) {
session_unregister("order_step");
unset($order_step);
};

};

  Ответить  
 
 автор: Lenny_Bars   (03.07.2012 в 16:35)   письмо автору
 
   для: confirm   (03.07.2012 в 16:30)
 

Простите пожалуйста что не по теме, но очень нужна помощь, а с вами связаться по другому нельзя(((
Вы не могли бы помочь мне, я опубликовала тему в форуме, и не знаю как справиться с проблемами, я буду очень благодарна вам! Моя тема в этом разделе вторая!!!

  Ответить  
 
 автор: confirm   (03.07.2012 в 16:30)   письмо автору
 
   для: kvins   (03.07.2012 в 16:11)
 

Начнем с этого - уберите якорь (#) со ссылок, или блокируйте обработку переходов по ссылке.
И вообще, запомните, щелкаются все элементы документа, а не только теги А, и их использование ради щелчка, не лучший подход. Заставлять пользователя следить за скачками в начало страницы, это не есть хорошо.

Значит, например, корзина в сессии, тогда ее структура должна быть такой:
<?
$_SESSION
['cart'] = array(
 
id=>array("параметр_1"=>"значение""параметр_2"=>"значение")
 
//и т.д...
);

При получении GET массива проверяете является ли id числом, и если да, то существует ли уже такой товар в корзине, и если да, то увеличиваете значение, если нет, то добавляете.

Редактирование (работа с корзиной, как и ее представление) никак не определяется числом товаров ней - это сервис для пользователя, а не удобная или не удобная функция в плане РНР.

  Ответить  
 
 автор: kvins   (03.07.2012 в 16:11)   письмо автору
 
   для: confirm   (03.07.2012 в 15:41)
 

В корзину передается товар и заносится в массив товаров

Ну вот сам тестовый сайт _gift2man.ru/fullcard.php?st=131

на конце ссылки видим цифры по которым достался товар

Наводим мышкой на кнопку купить и видим что эти цифры и передаются на страницу корзины.

А по этому номеру на странице корзины достает инфу о товаре с базы данных.
Это было первоначально сделано в корзине и все работает.

Далее если нажать на 1 из Футляров и потом навести на ссылку купить мы уже видим новую переменную которую нужно внести в какой нить масив

Нажимает на кнопку купить и видим что переменная показывается после слов футляр номер
и показывается цифра от переменной от 1 до 3.

Но если зайти еще на какой нить товар , и выбрать другой футляр , то данные перезапишутсяи будет один футляр на 2 товара.



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



PS: Про редактирование и удаление пока не задумываюсь , так как если в массиве будет 30 -40 товаров , то не будет сложности ее обработать ,

  Ответить  
 
 автор: kvins   (03.07.2012 в 15:42)   письмо автору
 
   для: cheops   (03.07.2012 в 14:30)
 

Не понял задумки , а для чего вписывается сначала в id а потом пункт val ?

И еще как теперь вывести все из масива чтобы увидеть что все переменные которые передал существуют , попробовал через

foreach ($arr['1'] as $value) {
echo "<b>$value</b><br>";

Но выдает ошибку , хотя в любом случае мне нужно показывать 2 переменные в ряд

  Ответить  
 
 автор: confirm   (03.07.2012 в 15:41)   письмо автору
 
   для: kvins   (03.07.2012 в 15:05)
 

>А что я такого написал что вы так решили написать ??

Видите ли, массив может иметь любую структуру. К примеру, ваши слова туда передается id и из базы достается вся информация о товаре совсем еще не означают, что в данном массиве является первичным, то-ли id товара, то-ли нечто иное, подразумевающее под собою и id в частности.

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

Что касается добавления, то то, как вам посоветовали выше не подойдет, так как все, что вы получаете от пользователя нужно проверять, а тем более id товара, которые подразумеваются как параметры запроса к базе.

Вот потому я так и написал. Вот определитесь со структурой массива своей корзины, определитесь как товары в нее могут добавляться (по штучно/по несколько), вот тогда и ответ можно сформулировать.

Да и вообще, такая вещь как корзина подразумевает многое - это не только добавление товара в нее, но еще и редактирование корзины (удаление, очистка и т.п.), краткое отображение корзины, и полное отображение ее.

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования