Плохо знаю как с ними работать и может кто подскажет .
Мне нужно сделать свой плагин последние просмотры с 3 последними товарами.
То есть зашел
на первую страницу index.php?val =1
потом на
index.php?val =2
index.php?val =3
index.php?val =4
index.php?val =5
как мне записывать (или перезаписывать) чтобы показать через функцию while эти последние 3 переменные val
- 31.07.2012 22:25
- 31.07.2012 22:37Новичок

- Регистрация: 16.03.2011
- Сообщений: 2
- Репутация: 10
kvins, используй сессии. Гугл по функции session_start()
- 31.07.2012 22:38
Написали бы на каком языке вам надо.
Узнаете размер массива и выводите 3 записи.
К примеру
posledni = номер последнего элемента в массив( вычислить через размер массива);
a=3;
if (posledni >3)
{
while (a!=0)
{
выводим massiv[posledni - a +1];
a--;
}
}
else {выводим весь массив}
Думаю доступно написалПоследний раз редактировалось Ispanec; 31.07.2012 в 23:15.
Спасибо сказали:
kvins(31.07.2012), - 31.07.2012 23:41
Ispanec, Нужно сделать на php , смысл я вижу в коде , тока сложновато по кускам разобрать , название масива я так понял posledni , но не вижу проверку на существования его и создание если его нету , (переменная a я понял выступает в роли лимита , а может я и не так понял))
---------- Сообщение добавлено 17:32 ---------- Предыдущее 17:31 ----------
Только для хранения масива , а так смысла не вижу все в него записывать , это стока инфы , вообще совет не понятен
---------- Сообщение добавлено 17:41 ---------- Предыдущее 17:32 ----------
Думаю понял бы сразу если бы чаще работал с ними а так не очень(Последний раз редактировалось kvins; 31.07.2012 в 23:35.
- 31.07.2012 23:49
- 31.07.2012 23:53
earnkz, Да это я знаю , но разве большое хранение в сесии данных не нагружает пользователя или сервер , даже если выводится всего 3 товара ??
а вдруг он на 200 страницах побывает =) тем более выводится эта инфа будет на каждой странице - 01.08.2012 00:10
Распишу немного поподробнее на php
<?php
$razmer_massiva = count($mas); //определяем размер массива $mas
$c_news = 3; //количество новостей, которое необходимо вывести
if ($razmer_massiva > $c_news)
{
while ($c_news != 0)
{
echo $mas[$razmer_massiva - $c_news]; //в квадратных скобках указан индекс массива, который будет выводится
$c_news--;
}
}
else
{
//выводим весь массив
foreach ($mas as $m) // перебираем весь массив и выводим на экран
{
echo $m;
}
}
?>Спасибо сказали:
kvins(01.08.2012), - 01.08.2012 03:40
Ispanec, Спасибо очень помогаешь , но проблема в том если перезагружать 1 и туже страницу он дублируется , как сделать так чтобы дубли не записывать ???
- 01.08.2012 11:56
kvins, не совсем понял что надо. По этому напишу два возможных решения:
Если массив больше нигде не используется, то после вывода информации можно удалить массив(при последующем обходе в массив будет записываться новая информация):
unset($mas);
Если же массив необходим, то прежде чем добавлять новый элемент, его надо проверить на дубли:
$konditat_na_dobavlenie = "ссылка"; // проверяем нет ли в массиве данной ссылки
$bool = false;
foreach($mas as $m)
{
if ($m == $konditat_na_dobavlenie)
{
$bool = true;
break;
}
}
if ($bool != true) // если в массиве нет данной ссылке, то добавляем ее в массив
{
$mas[] = $konditat_na_dobavlenie;
} - 01.08.2012 12:57
Пользователя не нагружает совсем, работает сервер.
Не надо сохранять все посещения, сохраняйте 3 последние, функции php которые будут вам полезны:
array_search() - ищем значение, если такого в массиве нет, добавляем.
count() - считаем количество элементов в массиве. Если меньше или равно 3 переходим к следующему этапу, если больше 3 удаляем первый элемент array_shift()
Далее уже делаем вывод данных.Спасибо сказали:
Ispanec(01.08.2012),
Тэги топика:
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Помогите | Оффтоп и свободные темы | 8 | 18.07.2012 14:56 |
Помогите | Оффтоп и свободные темы | 5 | 03.07.2012 15:08 |
Помогите | Партнерские программы | 7 | 06.02.2011 20:33 |
Помогите с DLE... | Web программирование | 0 | 23.01.2011 20:30 |





