Ir para conteúdo
Fórum Script Brasil
  • 0

Script de cronometro para site de um centavo


stive128

Pergunta

Olá camaradas,

tenho um site de leilão de um centavo, porem antes de divulgar gostaria de alterar a forma de contagem do tempo de leilão, pois atualmente, o cronometro é reiniciado ao seu tempo inicial a cada lance feito, exemplo, programo um leilão de 30 segundos, então aos 20 segundos alguém da um lance, então o cronometro volta aos 30 segundos. Então gostaria de alterar isso, pois se coloco um leilão de 1 hora por exemplo, toda vez que alguém der um lance ele voltara para 1 hora inicial e isso não é algo aceitável, minha ideia é que independente do tempo que eu coloque de leilão ele só comece a resetar o tempo para os ÚLTIMOS 30 segundos do leilão, ou seja, eu programarei 1 hora de leilão, os lances serão dados e o cronometro regressivamente continuara normalmente a diminuir, porem nos seus últimos 30 segundos de leilão ele começara a resetar para os seus últimos 30 segundos até que mais ninguém de lances e o leilão se encerro, ou seja, faltando 20 segundos, alguém da um lance, então retorna-se aos últimos 30 segundos, independente de qual era o tempo inicial do leilão, seja la 1 ou 10 horas inicialmente.

o que devo alterar no script para que isso passe a funcionar como expliquei:

<?php

require_once "../application.php";

if (!isset($_GET['ids']) || empty($_GET['ids'])) {

exit();

}

$result = array();

$leiloes = query("

SELECT l.idLeilao, l.dataInicio, l.periodo, p.preço

FROM " . TB_LEILAO . " l

INNER JOIN " . TB_PRODUTO . " p ON l.idProduto = p.idProduto

WHERE

l.idLeilao IN (" . $_GET['ids'] . ")

ORDER BY l.idLeilao ASC

");

$now = date(DATE_FORMAT_SQL);

while ($leilao = $leiloes->fetch_assoc()) {

$data = array();

$data['id'] = $leilao['idLeilao'];

$data['inicio'] = 'iniciado';

$lances = query("

SELECT l.idUsuario, l.dataLance, u.usuario, (SELECT count(*) FROM " . TB_LANCE . " WHERE idLeilao = " . $leilao['idLeilao'] . " GROUP BY idLeilao) AS num_lances

FROM " . TB_LANCE . " l

LEFT JOIN " . TB_USUARIO . " u ON u.idUsuario = l.idUsuario

WHERE

idLeilao = " . $leilao['idLeilao'] . "

ORDER BY l.idLance DESC

LIMIT 1

");

if ($lances->num_rows > 0) {

$lance = $lances->fetch_assoc();

$num_lances = $lance['num_lances'];

$data['usuario'] = $lance['usuario'];

$_idUsuario = $lance['idUsuario'];

$dataLance = $lance['dataLance'];

}

else {

$num_lances = 0;

$data['usuario'] = ' ';

}

$preço = str_pad($num_lances, 3, "0", STR_PAD_LEFT);

$preço = substr($preço, 0, -2) . "," . substr($preço, -2);

$data['preço'] = $preço;

$economia = number_format($leilao['preço'], 2, ".", "");

$economia = 100 - number_format((str_replace(",", ".", $preço) * 100) / $economia, 5, ".", "");

if (dateCompare($now, $leilao['dataInicio'])) {

if ($num_lances > 0) {

if (dateCompare($dataLance, $leilao['dataInicio'])) {

$tempo = timeDiff($dataLance, $now);

}

else {

$tempo = timeDiff($leilao['dataInicio'], $now);

}

}

else {

$tempo = timeDiff($leilao['dataInicio'], $now);

}

$tempo = timeDiff(date(DATE_FORMAT_SQL, mktime(0, 0, $tempo)), date(DATE_FORMAT_SQL, mktime(0, 0, $leilao['periodo'])));

if ($tempo > 0) {

$tempo = date(TIME_FORMAT, mktime(0, 0, $tempo, 0, 0, 0));

}

else {

$tempo = 'ARREMATADO!';

//if ($num_lances > 0) {

//Arrematar($leilao['idLeilao'],$_idUsuario,$preço);

/* $arrematado = query("SELECT idLeilao FROM ".TB_ARREMATADO." WHERE idLeilao = ".$leilao['idLeilao']."");

if ($arrematado->num_rows == 0) {

query("INSERT IGNORE ".TB_ARREMATADO."(idLeilao,idUsuario,dataArremate,valor) VALUES('".$leilao['idLeilao']."','".$_idUsuario."','".date(DATE_FORMAT_SQL)."','".@str_replace(",",".",$preço)."')");

$bonificados = array();

$bonus = query("

SELECT l.idLance, l.idUsuario

FROM tbLance l

WHERE

l.idLeilao = ".$leilao['idLeilao']."

ORDER BY l.idLance DESC

");

while($_bonus = $bonus->fetch_assoc()) {

$bonificados[$_bonus['idUsuario']] = $_bonus['idUsuario'];

if (count($bonificados) == 3) {

break;

}

}

$i = 0;

foreach ($bonificados as $id => $val) {

if ($i > 0) {

switch ($i) {

case 1:

$bonus = 20;

break;

case 2:

$bonus = 10;

break;

}

query("UPDATE ".TB_CREDITO_ATUAL." SET numero = numero + ".$bonus." WHERE idUsuario = ".$id."");

}

$i++;

}

query("DELETE FROM ".TB_LANCE_AUTOMATICO." WHERE idLeilao = '".$leilao['idLeilao']."'");

query("DELETE FROM ".TB_ROBOT." WHERE idLeilao = '".$leilao['idLeilao']."'");

} */

//}

}

}

else {

$data['inicio'] = date(DATE_FORMAT, strtotime($leilao['dataInicio']));

$tempo = date(TIME_FORMAT, mktime(0, 0, $leilao['periodo']));

}

$data['tempo'] = $tempo;

$data['economia'] = number_format($economia, 2, ",", "");

$result['leilao'][] = $data;

}

$return = "";

for ($i = 0; $i < count($result['leilao']); $i++) {

$return .= implode("|", $result['leilao'][$i]) . ';';

}

echo substr($return, 0, -1);

?>

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...