Jump to content


Photo

Quebrando Data Com Array


  • Faça o login para participar
7 replies to this topic

#1 lanlan

lanlan

    12 Horas

  • Usuários
  • 180 posts
  • Sexo:Não informado
  • Localidade:Teresina
  • Interesses:design, php, photoshop. ;} webdesign em geral!

Posted 17/08/2006, 13:55

Então, eu tenho um campo chamado $nascimento na minha tabela de usuários, que armazena as datas de nascimento dos meus usários, no formato:

2006-09-21

Certo. O problema é que eu tenho um formulário em que cada usuário pode editar suas informações.
Assim:

// SELECIONA OS DADOS DO BANCO
$perfil = mysql_query("SELECT * FROM tab_user WHERE user = '$usuario'"); 
$perfil = mysql_fetch_array($perfil); 

// PÕE A DATA EM UM ARRAY
$arr=split("-",$perfil[nascimento]); 
$yy=$arr[0];
$mm=$arr[1];
$dd=$arr[2]; 


// CHAMA A DATA JÁ ESCOLHIDA PELO USUÁRIO E FAZ UM LOOP ENTRE OUTRAS DATAS POSSÍVEIS, CASO ELE QUEIRA MUDAR

echo'<h5>Data de nascimento</h5>
<select name="dia">
<option selected>' . $dd=$arr[2] . '</option>';
for ($i=1;$i<=31;$i++){ echo '<option>'.$i.'</option>'; }
echo'</select>
<select name="mes">
<option selected>' . $mm=$arr[1] . '</option>';
for ($i=1;$i<=12;$i++){ echo '<option>'.$i.'</option>'; }
echo'</select>
<select name="ano">
<option selected>' . $yy=$arr[0] . '</option>';
for ($y = 1906; $y <= date('Y'); $y++)
{echo '<option value="'. $y .'">'. $y .'</option>'; }

Só que não funciona. :/ Alguém sabe como eu podera fazer isso?

#2 .Eduardooo

.Eduardooo
  • Visitantes

Posted 17/08/2006, 14:22

N vi muito bem seu código.

mas se for um campo assim... DD/MM/AAAA
Você pode usar a função explode e quando aparecer o / ele quebra em arrays, ai é só por nos campos...

Veja o exemplo...
<?php
$data  = "01/02/2006";
$separador = explode("/", $data);

echo $separador[0]; // 01
echo $separador[1]; // 02
echo $separador[2]; // 2006
?>

Edição feita por: .Eduardooo, 17/08/2006, 14:23.


#3 bobmatador

bobmatador

    12 Horas

  • Usuários
  • 210 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 17/08/2006, 15:01

o usuario pode escolher quantas datas quando ele for fazer o update?
Sua fonte de Tutoriais na Web!
TutoriaisClube.com

#4 lanlan

lanlan

    12 Horas

  • Usuários
  • 180 posts
  • Sexo:Não informado
  • Localidade:Teresina
  • Interesses:design, php, photoshop. ;} webdesign em geral!

Posted 17/08/2006, 15:36

Brigada pela ajuda, já deu certo.
^^

#5 .Eduardooo

.Eduardooo
  • Visitantes

Posted 17/08/2006, 16:58

Opa, fez como eu falei? Se for, de nada; :D

bobmatador, no script dela faz isso, no exemplo que eu dei eu só fiz a parte em que o script ira pegar a data no BD e dividir essa data em 3 arrays.

#6 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 17/08/2006, 17:04

O que pode fazer para ficar mais simplificado é:

$data = "2006-08-17";
$nova_data = array_implode("/", array_reverse(array_explode("-", $data)));
///////////////
$data = "17/08/2006";
$nova_data = array_implode("-", array_reverse(array_explode("/", $data)));

O que isso faz? Explode a data pelos tracinhos (padrão MySQL), inverte o array, ao invéz de AAAA-MM-DD você terá DD-MM-AAAA, e une os arrays em uma nova string.

O processo inverso é feito no 2º exemplo.
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#7 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 17/08/2006, 21:42

Estou começando estudar mysql e descobri uma função muito interessante...

$perfil = mysql_query("SELECT DATE_FORMAT(nascimento, %d/$m/%Y) AS data, * FROM tab_user WHERE user = '$usuario'");


Mais informações: MySQL: DATE_FORMAT()

;)

Edição feita por: pgnall, 17/08/2006, 21:42.

Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#8 Fábio Luciano

Fábio Luciano

    Ativo

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Santa Maria / DF
  • Interesses:Ah eu gosto de tudo :D

Posted 18/08/2006, 02:22

Cifrão no meio disso tudo? tá loco ^^

$perfil = mysql_query("SELECT DATE_FORMAT(nascimento, %d/%m/%Y) AS data, * FROM tab_user WHERE user = '$usuario'");

Ah! uma coisa que não sei é se essa função funciona em qualquer tipo de campo, já fiz isso em DATE e DATETIME, nos outros não sei se dá muito certo...

Edição feita por: OmegamoN, 18/08/2006, 02:23.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq