Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > проблема с баннерами


Автор: Рыжий 26.11.2004, 13:18
Значит у меня не стандартный вопрос.
Я заметил такой прикол: на некоторых сайтах (да в общем на всех) допустим есть баннер. Он посвящен определенной теметике. Но когда я перезагружаю эту страницу, баннер уже другой.
Что-то вроде генератора баннеров.
Помогите разобраться в этом. и если можно даже с примером.

Автор: Ignat 26.11.2004, 14:06
А где проблема, и в чем вопрос?

Автор: Архей 26.11.2004, 15:45
Тут в общем ничего замудренного нет, фишка вот в чем: Создаешь допустим свой массив с именами баннеров(ссылок к ним) а затем по одному выводишь их из массива в случайном порядке при каждой новой загрузке(рефреше). Вот тебе пример:

Код

$banner = array("img1.gif", "img2.gif", "img3.gif");

shuffle($banner);

echo "<img href=' /images/".$banner." ' >";


Функция shuffle перетасовывает элементы и всегда происходит вывод разного элемента!
Это один из способов, так же можно выводить имена баннер из базы так же в случайном порядке.

Автор: penizillin 26.11.2004, 17:52
скорее
Код
echo "<img href=' /images/".$banner[0]." ' >";

Автор: IZ@TOP 26.11.2004, 20:05
Цитата
так же можно выводить имена баннер из базы так же в случайном порядке.

smile Дайте поглядеть. smile

Автор: Рыжий 26.11.2004, 21:31
чето я вообще плохо вас понял, вы предлагаете мне на php я его не очень знаю, поэтому можно пожалуйста поподробней, плиз smile

Автор: penizillin 26.11.2004, 22:26
подробней - в гугле. пользоваться умеете?

Автор: Архей 26.11.2004, 23:29
penizillin - Ты прав, спасиб за попровку smile

IZ@TOP, специольно для тебя:

Вносишь в БД так же имена изображений, присваиваешь каждому имени уникальный id, затем СЕЛЕКТОВ считываешь id(или сразу можно имена), вставляешь их так же в массив и т.д.. - один из способов

Можно намного короче посредством выборки СЕЛЕКТА и ЛИМИТ на 1-у строку, но я ща так на вскидку не вспомню этот параметр.

Надеюсь твое любопытство уталено..

D-Bugger - Что же не понятного то, с примером ведь расписал..для лучшего понимания подучи Операторы, тогда сразу въезжать начнешь

Автор: IZ@TOP 27.11.2004, 12:23
Цитата
Можно намного короче посредством выборки СЕЛЕКТА и ЛИМИТ на 1-у строку, но я ща так на вскидку не вспомню этот параметр.

Надеюсь твое любопытство уталено..

Неа, не понял. Первый вариант ИМХО неприемлем, так как там может быть и 10000 записей. А с лимитом я не понял, ты это чтоли имеешь ввиду:
Код

$r = mysql_query("select count(*) from banners");
list($c) = mysql_fetch_array($r, MYSQL_NUM)
$l = rand(0, $c-1);
$r = mysql_query("select code from banners limit ".$l.",1");
...

И вообще по моему надо делать столбец udate (последнее обновление), сортировать по нему -order by udate, после показа увеличиватьи это поле, потом как ты говоришь делать лимит limit 1,1 и все получится, записи будут подниматься постепенно наверх.
Но все равно smile
Добавлено @ 12:28
Цитата
D-Bugger - Что же не понятного то, с примером ведь расписал..для лучшего понимания подучи Операторы, тогда сразу въезжать начнешь

Гы... тебе тоже стоит подучить ;)

Автор: Opik 27.11.2004, 16:19
IZ@TOP
Из базы в случайном порядке делать гораздо проще:
Код

$query = mysql_query("select * from table ORDER by RAND() limit 1");

и всё =)))))

Автор: IZ@TOP 27.11.2004, 18:21
Opr, о! Вот это я и хотел выяснить smile Спасибо !!! smile

Автор: Архей 27.11.2004, 18:36
На счет "короче с применением базы" я и имел в виду пример Opr (Респект)

Изатоп - смею заметить, что не тебе судить о моих знаниях, дабы ты меня не знаешь и мой уровень тоже...

Автор: IZ@TOP 27.11.2004, 18:45
Да, Opr'y респект.

smile
Цитата
Изатоп - смею заметить, что не тебе судить о моих знаниях, дабы ты меня не знаешь и мой уровень тоже...

Я как раз и сужу по услышанному. Просто твои ответы обычно приходят когда в них уже ни кто не нуждается. Я тебе уже замечание по этому поводу сделал. Надеюсь что ты понял.

Автор: Архей 27.11.2004, 18:53
Хе... извини, но если у тебя личная непрязнь, то попрошу оставить ее.. и Репутацию понижать тоже не уместно, я сюда пришел не для того что бы ты мне перечил, я пришел задать свои вопросы и по возможности ответить на вопросы других! Так же заметь, если я и повторяю чьито слова, то обязательно добавляю какие-то поправки от себя и говорю что процетировал... Твои упреки не в тему, такое ощущение, что ты в игрушки пришел играть, а не помогать.. Ты крайне упал в моих глазах.. Тема закрыта.

Автор: Opik 27.11.2004, 23:13
на момент вопроса я знал как ответить, но когда нужно было самому гугль спас мир =)))))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)