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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: аукцион
 
 автор: chexov   (12.10.2008 в 17:43)   письмо автору
 
 

Вообщем есть задумка создать онлайн аукцион, у кого какие идеи?
Условия таковы, например есть 3 лота
1 лот / 2лот / 3 лот
время на ставки / время на ставки / время на ставки
время разное, на каждый лот, и + такое условие, если кто-то из участников сделал ставку, то у всех время добавляется на какую то велечину в зависимости от лота, какие идеи по осуществлению, язык и методы:)

  Ответить  
 
 автор: ddhvvn   (12.10.2008 в 19:20)   письмо автору
 
   для: chexov   (12.10.2008 в 17:43)
 

А какие тут идеи ждете? Задача простецкая!

Самое сложное что я тут вижу - запрос, который тоже проще простого
UPDATE table_name SET time=time+INTERVAL '10' MINUTE

  Ответить  
 
 автор: Trianon   (12.10.2008 в 19:47)   письмо автору
 
   для: ddhvvn   (12.10.2008 в 19:20)
 

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

  Ответить  
 
 автор: ddhvvn   (12.10.2008 в 21:11)   письмо автору
 
   для: Trianon   (12.10.2008 в 19:47)
 

Ммм.... Вам конечно виднее, а я немного не понял..

или Вы про вариант, если там будет лотов, как на eBay? ))
потому что если 10 лотов, то я сомневаюсь, что такая операция будет затягиваться...
и опять же 10 мин я от себя вставил ))
может там 2 дня надо

или я опять не про то, а Вы не про загрузку системы сказали, а про то что лоты могут существовать очень долго? )

  Ответить  
 
 автор: Trianon   (12.10.2008 в 21:24)   письмо автору
 
   для: ddhvvn   (12.10.2008 в 21:11)
 

Конечно не про загрузку.

Реально то как? Аукционатор три раза молотком стукнул и всё. Кто не успел - тот опоздал.
В сети... в сети бо большому счету всё то же самое. Но интервалы растянуты изрядно по сравнению с.
каждый такой шаг будет продлевать процесс на минуты, часы и т.д. При чем каждый будет стремиться ответить как можно позже, чтоб конкурент опоздал.

  Ответить  
 
 автор: ddhvvn   (12.10.2008 в 21:55)   письмо автору
 
   для: Trianon   (12.10.2008 в 21:24)
 

Нет, это понятно!
Но автор то хочет именно так!
Так что, как говорится, это уже совсем другая история! =))

  Ответить  
 
 автор: chexov   (14.10.2008 в 06:47)   письмо автору
 
   для: ddhvvn   (12.10.2008 в 21:55)
 

пример аукциона http://gagen.ru в частности меня интересуют счетчики времени(таймеры) которые существуют сами по себе, т.е у всех они показывают одинаковое время, на разные лоты по своему, как такие счетчики осуществить?

  Ответить  
 
 автор: chexov   (16.10.2008 в 04:46)   письмо автору
 
   для: chexov   (14.10.2008 в 06:47)
 

есть предложения?

  Ответить  
 
 автор: chexov   (16.10.2008 в 12:15)   письмо автору
 
   для: chexov   (16.10.2008 в 04:46)
 

уважаемые, неужели никто не предположит?

  Ответить  
 
 автор: Саня   (17.10.2008 в 08:45)   письмо автору
 
   для: chexov   (12.10.2008 в 17:43)
 

<html>
<head>
  <title>Аукцион</title>
</head>
<body>

<span id="timer" onclick="raise()">00:10</span><br/>
<span id="price" onclick="raise()">154</span> руб.

<script type="text/javascript" src="jquery-1.2.6.min.js"></script>
<script type="text/javascript">
interval = setInterval(ch_timer, 1000);
function ch_timer() {
  var time = $("#timer").text().split(":");

  var m = parseInt(time[0], 10);
  var s = parseInt(time[1], 10);

  if ( m == 0 && s == 0 ) {
    $("#timer").text("Торги кончились!");
    clearTimeout(interval);
    return;
  }

  if ( s == 0 ) {
    m--;
    s = 60;
  }
  s--;
  if ( m.toString().length == 1 ) m = "0"+m;
  if ( s.toString().length == 1 ) s = "0"+s;
  $("#timer").text(m+":"+s);
}

function raise() {
  var time = $("#timer").text().split(":");

  var m = parseInt(time[0], 10);
  var s = parseInt(time[1], 10);

  if ( m == 0 && s == 0 ) {
    $("#timer").text("Торги кончились!");
    clearTimeout(interval);
    return;
  }

  s += 10; // добавляем 10 секунд к таймеру
  if ( s > 59 ) {
    s -= 60;
    m++;
  }
  if ( m.toString().length == 1 ) m = "0"+m;
  if ( s.toString().length == 1 ) s = "0"+s;
  $("#timer").text(m+":"+s);

  $("#price").text(parseInt($("#price").text(), 10) + 1); // добавляем 1 рубль к цене
}

</script>
</body>
</html>

Чтобы синхронизировать таймеры для всех, нужно начальное значение таймера и цены брать аяксом с сервера. И, соответственно, каждые несколько секунд проверять аяксом таймер и цену. При клике на цену/таймер, увеличивать его себе на странице и отправлять новые данные аяксом на сервер. Всё просто.

  Ответить  
Rambler's Top100
вверх

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