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

Problema Na Substração


turha

Pergunta

Olá a todos

Estou mesmo a precisar de ajuda aqui... Estou a tentar substrair duas variaveis e não consigo. Aqui fica o código

$query = "SELECT `title`, `views`, `id`, `edit` FROM `group_main` ORDER BY `views` DESC LIMIT 0 , 5";

$result = @mysql_query($query);

$ctime = time();

$difference = $ctime - $row[3];

O time() tem a hora actual em segundos e o $row[3] tem a hora da última actualização que está no campo 'edit', mas a substração de um com o outro para dar o valor de há quanto tempo a actualização foi feita não acontece.

O resultado é sempre a hora actual, embora no $row[3] esteja o valor da hora da actualização.

O que está a faltar aqui?

Obrigado!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá,

Eu percebo pouco de PHP, mas pela lógica do script eu estou a conseguir opter do $row[0] o título e do [1] os visitantes e do [2] o id, e do $row[3] o valor da última actualização. Quando faço o print esse valor aparece, mas não consigo subtrair.

O código que me enviaste funciona em parte. Agora a substração acontece só que o valor do dado_bd é sempre o mesmo e eu tenho três registo na base de dados com valores diferentes para o 'edit'. O $row[3] dá-me os três valores diferentes apresentando-os numa lista, só não consigo que ele funcione na substração.

O que fazer? Alguma forma de usar o teu código e mudar para dar o três valores que estão na base de dados, já que ele dá sempre o mesmo?

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

$dado_bd = mysql_result($result,0,edit);

Sempre retornar a mesma coisa pois o 0 manda ele pegar apenas o primeiro resultado da query (que é o 0), se você quiser os outros resultados basta trocar o 0 por 1 e 2...

Para você utilizar assim:

$row[3]

Você teria que mandar um mysql_fetch_array na variável $row assim ele criaria os elementos do array e ai sim você conseguiria pegar um elemeno chamado $row[3]

Link para o comentário
Compartilhar em outros sites

  • 0

Oi,

Agora funcionou... mas tenho ainda um problema que é converter o valor apresentado para segundos, horas, dias etc... o resultado final deverá ser "Última Actualização há 3 horas atrás"

Vou colocar o código completo, já que ele entra num loop qualquer ou em calculos interminaveis que me bloqueia a página. A barra de progressão do navegador fica a trabalhar como se tivesse a ler alguma coisa que nunca acaba e ele fica bloqueado.

O código é este:

<?php

$query = "SELECT `title`, `views`, `id`, `edit` FROM `group_main` ORDER BY `views` DESC LIMIT 0 , 5";

$result = @mysql_query($query);

$ctime = time();

$endnum = mysql_num_rows($result);

$i=0;

if ($result) {

while ($row = @mysql_fetch_array($result, MYSQL_NUM)) {

$dado_bd = mysql_result($result,$i,edit);

$difference = $ctime - $dado_bd;

$i=$i+1;

$periods = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "decada");

$lengths = array("60","60","24","7","4.35","12","10");

for($j = 0; $difference >= $lengths[$j]; $j++)

$difference /= $lengths[$j];

$difference = round($difference);

if($difference != 1) $periods[$j].= "s";

$displaydate = "$difference $periods[$j]";

print '<tr><td style="width:75%;font-size:8pt;text-align:right;">';

print '<br>Última actualização há';

print "$displaydate";

print 'atrás';

print '</td></tr>';

}

} else {

print '<tr><td style="width:75%;font-size:8pt;text-align:right;">Não Disponível</td><td></td></tr>';

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Você poderia ter contianuado a usar o $row, já ue você cria um array com o mysql_fetch_array, quanto a página ficar processando até estourar o tempo, um dos laços de repetição deve estar em looping infinito...

Link para o comentário
Compartilhar em outros sites

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...