|
|
|
| В HTML вставляется код
<script language="JavaScript">
var r1 = Math.round(Math.random() * 4294967295);
var r2 = Math.round(Math.random() * 4294967295);
document.write('<sc'+'ript src="http://'+document.domain+'/banners/test.php?cat=' + r1 + '&' +'i=' + r2 + '&side=top"></sc'+'ript>');
</script>
|
БД:
CREATE TABLE IF NOT EXISTS `banner` (
`id_banner` bigint(8) NOT NULL AUTO_INCREMENT,
`cat` enum('sport','car','politic','тест') NOT NULL DEFAULT 'car',
`download_banner` varchar(100) NOT NULL DEFAULT '',
`url` varchar(255) NOT NULL DEFAULT '',
`content` text NOT NULL,
`width` int(3) NOT NULL DEFAULT '0',
`height` int(3) NOT NULL DEFAULT '0',
`view` bigint(8) NOT NULL DEFAULT '0',
`count_view` bigint(8) NOT NULL DEFAULT '0',
`count_click` bigint(8) NOT NULL DEFAULT '0',
`bid_close` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_banner`)
) ENGINE=MyISAM DEFAULT CHARSET=koi8r AUTO_INCREMENT=207 ;
|
Вопрос: как на основе случайно сгенерированого числа r2 в javascript показать баннер, если он ни коем образом не связан с id_banner? | |
|
|
|
|
|
|
|
для: mihdan
(05.03.2010 в 13:04)
| | Зачем потребовалось генерировать случайное число в JS?
Почему бы просто не выводить случайную запись из MySQL | |
|
|
|
|
|
|
|
для: buldovsky
(05.03.2010 в 13:19)
| | Чтобы не нагружать сервер, чтобы не поттосовать результаты. Это большой экспиремент - условия, которого менять нельзя | |
|
|
|
|
|
|
|
для: mihdan
(05.03.2010 в 13:04)
| | А от обратного? Что нельзя случайный баннер из имеющихся по обычному запросу клиента? | |
|
|
|
|
|
|
|
для: sim5
(05.03.2010 в 13:20)
| | К сожалению нет!
В эксперименте важен факт того, что генериться на клиенте. Это значение передаётся в РНР-скрипт, который на основе этого числа должен показать баннер (тут проблема) и вывести в результате <img rsc="баннер на основе случайного числа из js" /> | |
|
|
|
|
|
|
|
для: mihdan
(05.03.2010 в 13:49)
| | По неизвестной причине модератор перетащил тему в mysql, хотя вопрос был по РНР, возможно я и не прав | |
|
|
|
|
|
|
|
для: mihdan
(05.03.2010 в 13:49)
| | И в чем суть этого эксперимента? | |
|
|
|
|
|
|
|
для: sim5
(06.03.2010 в 08:29)
| | Честно сказать - не знаю, да и знать не очень хочется. Вопрос в другом, как это можно реализовать? В голову приходит только одно: посчитать количество всех баннеров, из сгенерированого числа взять последние n-цифр меньше количества баннеров.
Например:
r1 = 123456789;
count = 123;
id_banner = 89 (берем последние 2 цифры)
Есть другие предложения? | |
|
|
|
|
|
|
|
для: mihdan
(07.03.2010 в 02:29)
| | Неа, нет, я смысла не вижу в этом эксперименте. ) | |
|
|
|
|
|
|
|
для: sim5
(07.03.2010 в 04:25)
| | Какая разница есть смысл или нет? Пытаюсь реализовать задачу которую мне поставили. Думал вы хоть на мысль натолкнете, куда копать... | |
|
|
|
|
|
|
|
для: mihdan
(08.03.2010 в 16:23)
| | Разделите случайное на счетчик, извлеките корень, умножте на два, может так лучше будет :)
Ну вы можете объяснить смысл генерации этого числа ради того, чтобы взять две крайних цифры? Почему вы уверены, что они будут всегда разными? Ну генерируйте уж тогда число не привосходящее число реальных баннеров, а то такая математика и не понять ради чего.
Если до меня не доходит смысл, я в ступоре ;-) | |
|
|
|
|
|
|
|
для: sim5
(08.03.2010 в 16:32)
| | >Ну вы можете объяснить смысл генерации этого числа ради того, чтобы взять две крайних цифры?
Смысл товарищи их СЕО редко объясняют. Знаю одно, что эти большие числа при показе баннера кладутся в таблицу banners_stat (id, id_banner, r1, r2) и потом нужны для какого то непонятного мне эксперимента.
>Разделите случайное на счетчик, извлеките корень, умножте на два, может так лучше будет :)
Возможно, попробовать стоит :)
>Почему вы уверены, что они будут всегда разными?
Я не говорю, что они будут уникальные, понимаю, что в некоторый момент времени они могут совпасть.
> Ну генерируйте уж тогда число не привосходящее число реальных баннеров, а то такая математика и не понять ради чего.
Это было первым условием, как не надо делать, естественно сразу так и реализовал, за что был наказан :)
В test.php написано
<?php
header('Content-type: application/javascript');
?>
document.writeln('<img src="banners/test/jpg" width="88" height="31">');
|
| |
|
|
|
|
|
|
|
для: mihdan
(08.03.2010 в 16:23)
| | Разница есть.
Если нет смысла - не следует напрягать людей проблемой, порожденной чьей-то прихотью. | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2010 в 16:38)
| | Не соглашусь, если задачу поставили -" значит, это кому-то нужно, значит, это - необходимо." | |
|
|
|
|
|
|
|
для: mihdan
(05.03.2010 в 13:04)
| | это реализовать можно только с ajax, так как переменная на джаваскрипт генерируется после того как пхп уже закончило работать и страницу получил браузер
нужно сделать чтобы после генерации числа запускался файл где есть запрос к БД, и результат вставлять в нужное место | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(07.03.2010 в 09:00)
| | Вы уверены, что ajax тут панацея, и прямо таки необходимость? | |
|
|
|
|
|
|
|
для: sim5
(07.03.2010 в 13:08)
| | Ну можно еще жабоскриптом перенаправлять и что дальше, а аякс неплохая вещь замена фреймам | |
|
|
|
|
|
|
|
для: sim5
(07.03.2010 в 13:08)
| | Ну можно еще жабоскриптом перенаправлять и что дальше, а аякс неплохая вещь замена фреймам, сосать бы он упел вообще цены бы ему не было | |
|
|
|
|
|
|
|
для: Красная_шляпа
(08.03.2010 в 23:21)
| | :) порадовал | |
|
|
|