Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

johnnypm

contagem de meses e dias

Recommended Posts

Sou iniciante em php e estou com o seguinte problema:

 

Estou tentando fazer um script onde eu pego duas strings(data e publicar) do banco mysql onde:

 

data : é a data de inclusao do cliente no banco de dados ;

publicar: contem as variaveis sim e nao;

 

 

problema:::

 

---preciso saber quantas variaveis sim e quantas nao existem no banco de dados;

---preciso encontrar a data final e mostrar os dados da seguinte forma:

 

-->quantidade de sim no banco: x

-->quantidades de nao : y

 

-->faltam 8 meses e 4 dias para o prazo final;

 

 

meu codigo está assim:(nao sei se está totalmente certo)

 

 

<?

$connection = mysql_connect("host", "user","senha") or die ("Não foi possível conectar ao servidor.");

$db = mysql_select_db("banco", $connection) or die ("Não foi Possível selecionar o banco de dados.");

$sql = "select * from clientes ";

$sql_result = mysql_query ($sql) ;

 

if (!$sql_result) {

echo"<p>Não foi possível buscar a lista!";

}

 

//puxa os valores do banco de dados

 

$mostra = mysql_fetch_array($sql_result){

$publicar = $mostra["publicar"];

$data = $mostra["data"]

}

 

//se publicar for iqual a sim conta o total de ativos

 

if($publicar==sim){

$ativos = count($publicar);

}

 

//se publicar for iqual a nao conta o total de desativados

 

if($publicar==nao) {

$desativados = count($publicar);

}

///////////////////////////////////////////////////////////////

// //

// CALCULA A QUANTIDADE DE MESES E DIAS //

// QUE FALTAM PARA O FINAL DA DATA //

// //

// //

/////////////////////////////////////////////////////////////

 

 

 

$data_atual = date("m/d/Y", mktime(0,0,0,'m','d','Y'));

$partes_atual = explode("/",$data_atual)

$dia_atual = $partes_atual[0];

$mes_atual = $partes_atual[1];

$ano_atual = $partes_atual[2];

 

//pega o ano atual e acrescenta mais um ano

 

$proximo_ano = $ano_atual + 1;

 

//

 

$inclue_dias=365;

 

//se o ano atual ou o ano final for bissexto ele acrescenta + 1 dia

//a string inclue_dias

 

if($ano_atual%4==0&&$ano_atual%100!=0 || $proximo_ano%4==0&&$proximo_ano%100!=0){

 

 

$inclue_dias++;}

 

//

 

$exclusao = date("$data", strtotime("+ $inclue_dias"));

 

//pega a data final e divide em dia, mes e ano

 

$partes_final = explode("/",$exclusao)

$dia_final = $partes_final[0];

$mes_final = $partes_final[1];

$ano_final = $partes_final[2];

 

//se a data de cadastro for menor que a data de exclusao

//verifica quanto tempo falta para passar o publicar para não

 

if($data <= $exclusao){

 

//passa a data atual e a data final para segundos

 

$segundos_atual = strtotime("$mes_atual/$dia_atual/$ano_atual");

$segundos_final = strtotime("$mes_final/$dia_final/$ano_final");

 

//verifica qual é o maior e o menor tempo

 

$maior = max($segundos_atual, $segundos_final);

$menor = min($segundos_final, $segundos_atual);

 

//diminue o tempo maior do tempo menor

 

$segundos = $maior - $menor;

 

//calcula o numero total de dias

 

$faltam_dias_d = (($segundos / 60) / 60) / 24;

 

//arredonda o numero de dias para o menor numero inteiro

 

$faltam_dias = floor($faltam_dias_d);

 

 

?>

 

 

agradeço se puderem dar uma força

 

valeu!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que talvez você possa resolver a contagem de sim e não pela sql mesmo:

 

//Vai lhe retornar o total de SIMselect count(*) from CLIENTES where PUBLICAR = "sim";//Vai lhe retornar o total de NAOselect count(*) from CLIENTES where PUBLICAR = "nao";

Para o outro problema (datas) tenta dar uma pesquisada no fórum, acho que sua solução já foi vista antes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Taí ó:

 

PHP [/tr][tr]

$datainicio=strtotime("08/01/2004"); // mm/dd/aaaa

$datafim =strtotime("09/01/2004");

 

$intervalo=($datafim-$datainicio) / 86400;

 

$mes = intval($intervalo / 30);

$dia = $intervalo - ($mes * 30);

 

echo "Timestamp em dias: $intervalo - Meses: $mes - Dias: $dia";

[/tr]

 

ps.: pode não ser a melhor solução, mas espero que lhe sirva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.