johnnypm 0 Denunciar post Postado Agosto 13, 2004 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
walace 1 Denunciar post Postado Agosto 13, 2004 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
walace 1 Denunciar post Postado Agosto 13, 2004 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
johnnypm 0 Denunciar post Postado Agosto 18, 2004 Brigadão walace,Abraço. Compartilhar este post Link para o post Compartilhar em outros sites