Jump to content
Fórum Script Brasil
  • 0

Script de cronometro para site de um centavo


stive128

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...