Endor Postado Maio 8, 2010 Denunciar Share Postado Maio 8, 2010 Boa Noite, amigos.Preciso divir o mês em pedaços. Alguns de 4 dias, outros de 6 dias.Para isso estou usando o for ($contador=3;$contador<=30;$contador+=6)Usei um separador para apresentar os resultados {echo $contador."-";}Minha idéia era depois pegar esses valores através de uma substring //// substr($data,0,2);E aí estou com o problema: Como fazer para saber se antes do "-" tem um número ou dois?Um exemplo do resultado é : 8-14-20-26-Preciso desmembrar em variáveis:$a == "8";$b== "14";$c== "20"; e assim por diante.Aceito sugestões e instruções.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Maio 8, 2010 Denunciar Share Postado Maio 8, 2010 Use a função explode:Exemplo$contador = 8-14-20-26 $explode = ("-",$contador); $a = $explode[0]; $b = $explode[1]; $c = $explode[2]; $d = $explode[3];Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Maio 8, 2010 Autor Denunciar Share Postado Maio 8, 2010 Olá FIT, Boa Noite!Obrigado pela ajuda.Eu já estava usando o explode, bem como split, mas não obtive o resultado desejado.No caso do explode (conforme abaixo), me retorna o número posterior ao 26, ou seja, 32 no array[0].Com certeza devo estar errando em algum lugar, mas...onde.for ($contador=2; $contador<=30; $contador+=6){echo $contador."-"; }$contador=="2-8-14-20-26-";$explode = explode("-", $contador);$a = $explode[0];$b = $explode[1];$c = $explode[2];$d = $explode[3];Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Maio 9, 2010 Denunciar Share Postado Maio 9, 2010 Olá FIT, Boa Noite!Obrigado pela ajuda.Eu já estava usando o explode, bem como split, mas não obtive o resultado desejado.No caso do explode (conforme abaixo), me retorna o número posterior ao 26, ou seja, 32 no array[0].Com certeza devo estar errando em algum lugar, mas...onde.for ($contador=2; $contador<=30; $contador+=6){echo $contador."-"; }$contador=="2-8-14-20-26-";$explode = explode("-", $contador);$a = $explode[0];$b = $explode[1];$c = $explode[2];$d = $explode[3];Abraços.Vamos por partesprimeiro não seria melhor você jogá-los em um array?outra para saber quantos numeros(caracteres) tem uma string utilize a funçao strlen($caracter) para conta-losnão entendir muito bem o que voce queria não mais vou tentar algo assim<?phpfunction Retorno($Dados) { $d=explode("-", $Dados); //transforma os dados obtidos em um array $N=count($d); //contando quantos elementos tem o array for($i=0; $i<$N; $i++) { $Ret.=$d[$i]; //junção dos dados obtidos no explode } return $Ret; }echo "D = ".Retorno($contador="2-8-14-20-26-");?>vai retorná os dados sem os - voce poderá adicionar um verificador dentro do for para ver se é de dois digitos ou so de um Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Endor Postado Maio 9, 2010 Autor Denunciar Share Postado Maio 9, 2010 Bom dia, Richayron!Obrigado pelo retorno.Você chegou extamente no ponto: Os resultados que obtenho do FOR, eles vêem sem o "-". Eu concatenei o traço com finalidade de ficar mais fácilencontrar com uma substring Exemplo: $d = substr($contador,0,2); Então me dei conta de que nos resultados iniciais os números não são duplos (Mês de 31 dias - se começar a contagem a partir do dia 1, terei: 1, 7, 13, 19, 25, 31.)Porque eu preciso disso? Porque eu posso precisar começar essa escala em qualquer dia do mês.Pode ser no dia 1, como no dia 10 ou mesmo dia 23, etc. Então preciso saber quantas destas escalas cabem no restante dos dias que faltam, ou mesmo se o restante dos dias é suficiente para preencher a escala de 6dias.Fiquei feliz quando conheci a função explode, porque era o que eu precisava. Ela me daria o valor (em array), eu trabalharia este dado.Mas enquanto não consigo usar outra modo de raciocínio, vou usar uma porção de switch, if e while para obter o resultado.Quando mencionou usar a strlen, foi minha idéia, pois eu contaria primeiramente os traços substr_count($contador,"-") e sabendo quantos traços eu teria, então faria a contagem de digitos entre cada traço.Mas não consegui efetuar a montagem do processo.Se puder me ajudar, agradeço imensamente.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Maio 9, 2010 Denunciar Share Postado Maio 9, 2010 Bom dia, Richayron!Obrigado pelo retorno.Você chegou extamente no ponto: Os resultados que obtenho do FOR, eles vêem sem o "-". Eu concatenei o traço com finalidade de ficar mais fácilencontrar com uma substring Exemplo: $d = substr($contador,0,2); Então me dei conta de que nos resultados iniciais os números não são duplos (Mês de 31 dias - se começar a contagem a partir do dia 1, terei: 1, 7, 13, 19, 25, 31.)Porque eu preciso disso? Porque eu posso precisar começar essa escala em qualquer dia do mês.Pode ser no dia 1, como no dia 10 ou mesmo dia 23, etc. Então preciso saber quantas destas escalas cabem no restante dos dias que faltam, ou mesmo se o restante dos dias é suficiente para preencher a escala de 6dias.Fiquei feliz quando conheci a função explode, porque era o que eu precisava. Ela me daria o valor (em array), eu trabalharia este dado.Mas enquanto não consigo usar outra modo de raciocínio, vou usar uma porção de switch, if e while para obter o resultado.Quando mencionou usar a strlen, foi minha idéia, pois eu contaria primeiramente os traços substr_count($contador,"-") e sabendo quantos traços eu teria, então faria a contagem de digitos entre cada traço.Mas não consegui efetuar a montagem do processo.Se puder me ajudar, agradeço imensamente.Abraços.veja se isso lhe servefunction Dia($data) //formato do msyql padrão ano-mes-dia { $ds=explode("-",$data); $Dia=$ds[2]; //dia $Mes=$ds[1]; //mes $Ano=$ds[0]; //ano $UltimoDiaMes= cal_days_in_month(CAL_GREGORIAN, $Mes, $Ano); //pegando o ultimo dia do mes for($i=0; $Dia<$UltimoDiaMes; $Dia+=6) { $Dias[$i]=$Dia; $i++; } return $Dias; } print_r(Dia(date('Y-m-d'))); //aqui vai imprimir o array retornado pela funçãoao que entendir você quer adicionar 6 ao numero do mes que vem indefinido sendo que não pode estora o ultimo dia do mes qualquer duvida estamos até mais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lamatta Postado Dezembro 30, 2010 Denunciar Share Postado Dezembro 30, 2010 Amigos, o meu caso é o seguinte...eu tenho uma tabela sql com as seguintes informações, ID e NOME...então exemplificando:<?$nome[1] = João;$nome[2] = Maria;$nome[3] = Raimunda;echo "$nome[1]";?>no navegador vai aparecer o nome João...porém eu quero em determinados pontos da pagina exibir outros nomes, mas sem fazer uma nova busca... tipo, no banco de dados eu sei que João recebe a id=1, Maria recebe a id=2 e Raimunda recebe a id=3... logo se eu escrever em qualquer lugar da pagina <? echo "$nome[3]"; ?> como já declarei a variavel $nome[3] = Raimunda; vai aparecer o nome raimunda... porém, eu tenho 100 nomes pra mostrar... não quero criar uma variael para cada nome, usarei apenas a variavel $nome[aqui dentro a id do nome]... Não sei se estou complicando voces com o que quero mas enfim, se puderem me ajudar o que eu quero é um script que gere aquelas variaveis $nome pra eu apenas modificar o valor dos [] e chamar o valor correspondente... Desde já, obrigado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 david.lyonnais Postado Dezembro 30, 2010 Denunciar Share Postado Dezembro 30, 2010 Você deveria criar outro tópico esse aqui é de maio, e a sua duvida é outra Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Dezembro 31, 2010 Denunciar Share Postado Dezembro 31, 2010 Bem, vou responder aqui mesmo então... o que você precisa fazer é ao executar a consulta no banco, fazer um for e para cada registro retornado você coloca o nome dentro do array no índice com texto do ID:<?php // Habilita todas mensagens de erros que possa acontecer ini_set('display_errors', 1); error_reporting(E_ALL); // Conexão ao banco mysql_connect('servidor', 'usuario', 'senha') or die(mysql_error()); mysql_select_db('teste') or die(mysql_error()); // Executa consulta no banco $sql = "SELECT id, nome FROM pessoas"; $rs = mysql_query($sql) or die(mysql_error()); // Declara o array a ser usado $nome = Array(); // Monta o array com as informações while($dados = mysql_fetch_assoc($rs)){ $nome[$dados['id']] = $dados['nome']; } // Imprime todo o array nome para visualizar como ficou os dados print_r($nome); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Endor
Boa Noite, amigos.
Preciso divir o mês em pedaços. Alguns de 4 dias, outros de 6 dias.
Para isso estou usando o for ($contador=3;$contador<=30;$contador+=6)
Usei um separador para apresentar os resultados {echo $contador."-";}
Minha idéia era depois pegar esses valores através de uma substring //// substr($data,0,2);
E aí estou com o problema: Como fazer para saber se antes do "-" tem um número ou dois?
Um exemplo do resultado é : 8-14-20-26-
Preciso desmembrar em variáveis:
$a == "8";
$b== "14";
$c== "20"; e assim por diante.
Aceito sugestões e instruções.
Abraços.
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
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.