last day (15 days later) » 

2:16 PM
0
A: Comparar Data dentro do Mysql

André BaillVocê pode desenvolver da seguinte forma: $DataAtual = date("Y-m-d"); $sql = "SELECT * FROM tabela WHERE data > {$DataAtual}"; Desta forma busca os registros que são maiores do que a data atual. Ou se a $data vier do Post, faça: $DataAtual = $_POST['data']; $DataAtual = date("Y-m-d", strtoti...

 
Para cadastrar a data eu uso o $_POST mesmo? porque se não vai cadastrar com / ou - e não mantem um padrão para comparação. Se eu usar $data = date("d-m-Y", $_POST['data']); Ele vai inserir: 01-09-1970 Se eu usar $data = data("DD-MM-YY", $_POST['data']); vai inserir: TueTue-SepSep-197019701970
 
Sim, você pode tratar ela no retorno. Eu inseri ali o tipo de exemplo, pra que você tenha uma idéia... basta apenas decidir qual formato que vem e excluir a linha incorreta.
 
André, ainda não consegui. Eu mando via post e pego com $data = date("d-m-y", $_POST['data]'); porem as datas não ficam iguais quando insiro no mysql, se eu inserir 210590 o que aparece no banco é: 03-01-70
 
$DataAtual = date("Y-m-d", strtotime($_POST['data'])); - Tente desta forma.
 
também não funciona, mesmo que eu coloque uma data futura o código cadastra a data de hoje.
 
2:16 PM
Conseguiu desenvolver?
conseguiu desenvolver???
 
Andre bom dia
não consegui
eu faço mas ele nao compara as datas, o sql simplesmente pega o primeiro da lista
 
Hmmm, na hora de inserir está errado? insere a data incorreta?
 
estou usando;
$titulo = trim($_POST["titulo"]);
$descricao = trim($_POST["descricao"]);
$data = date("d-m-Y", strtotime($_POST['data']));

$database::query("INSERT INTO eventos (titulo, descricao, data) VALUES ('".$titulo."', '".$descricao."', '".$data."')");
 
e insere incorreto?
 
ele cadastra perfeitamente
 
2:25 PM
cadastra a data normal?
 
mas na hora de comparar é que nao funciona
só cadastra certo se eu usar os 0
- **
se eu digitar direto por exemplo; 20072015 ele escreve: 01-01-1970
 
tem que ser: 20/07/2015
você pode fazer assim oh
 
com barra nao funciona
se eu digitar 20/07/2015 o cadastro aparece: 01-01-1970
 
$data = explode("/", $data);
$data = $data[2]."-".$data[1]."-".$data[0];
coloque isto no lugar de $data = strtotime
e cadastra ele usando o formato brasileiro mesmo, 20/07/2015
por ex
 
agora tento com / ?
 
2:28 PM
yes
$titulo = trim($_POST["titulo"]);
$descricao = trim($_POST["descricao"]);

$data = explode("/", $data);
$data = $data[2]."-".$data[1]."-".$data[0];

$database::query("INSERT INTO eventos (titulo, descricao, data) VALUES ('".$titulo."', '".$descricao."', '".$data."')");
 
agora tenta com / ?
 
sim, tente no formato normal
20/07/2015 por exemplo
 
agora ele cadsatro no americano
 
ótimo!
 
2015-07-20
 
2:30 PM
está correto agora :D
isso mesmo
o formato do seu campo é o date né
data > formato campo date
 
na tabela?
 
nao
é varchar
 
rssr, tem que ser date
se não a sua comparação com o mysql não dá
 
pera ai
 
2:31 PM
mude o formato do campo para date
 
ALTER TABLE eventos MODIFY data date
 
qual é o sql de comparação?
 
fala que tem um fim de sintaxe inesperado :/
 
mas alterou o formato?
ALTER TABLE eventos CHANGE data data DATE NOT NULL;
este é o comando correto para alteração, ao menos eu uso este.
 
pronto
a query de comparação;
$dataAtual = date("d-m-y");
$Evento = $database::query("SELECT * FROM eventos WHERE data >= {$dataAtual}");
$rowEvento = $database::row($Evento);
 
2:35 PM
data atual vem de onde?
do post?
ou o dia de hoje?
 
nao
o dia mesmo
 
$dataAtual = date("Y-m-d");
mude para este
 
$dataAtual = date("Y-m-d");
$Evento = $database::query("SELECT * FROM eventos WHERE data >= {$dataAtual}");
$rowEvento = $database::row($Evento);
$dataAtual = date("Y-m-d");
$Evento = $database::query("SELECT * FROM eventos WHERE data >= '{$dataAtual}'");
$rowEvento = $database::row($Evento);

Caso não consiga, tente usar este, por causa das aspas, as vezes não funciona corretamente.
 
funciona mas a comparação nao funciona
tenho 2 datas;
2015-07-20 e 2015-07-21
deixei só o > e nao puxa a do dia 21 só do dia 20
 
2:39 PM
se for data atual
tem que ser
>=
 
vou testar uma coisa
 
se você quer buscar de HOJE em diante, use >= se você quiser usar de amanhã em diante, use apenas >
 
WORKS!
usei só >
e pra dar echo no estilo pt-br ?
o date("d-m-Y", $rowEvento['data']); nao funcionou
 
você pode fazer da seguinte forma: echo date("d/m/Y", strtotime($row[data]));
tente desta forma.
deu certo? :)
 
UNDEFINED VARIABLE: ROW IN C:\WAMP\WWW\USUAL\SIDEBAR.PHP ON LINE 12
tsc..
sou burro de mais
é $rowEvento
mas ai ele escreve: 01/01/1970
 
2:50 PM
uhm
fazemos o inverso
$data = explode("-", $rowEvento['data']);
$data = $data[2]."/".$data[1]."/".$data[0];
teste
aí só dar um echo $data
não esquece que você precisa inserir isso dentro do while...
 
sou exibir 1 de cada vez
e coloco isso onde?
 
ou dentro da condição de impressão
 
$data = explode("-", $rowEvento['data']);
$data = $data[2]."/".$data[1]."/".$data[0];
 
dentro da condição de impressão
é um por vez?
$dataAtual = date("Y-m-d");
$Evento = $database::query("SELECT * FROM eventos WHERE data >= '{$dataAtual}'");
$rowEvento = $database::row($Evento);

$data = explode("-", $rowEvento['data']);
$data = $data[2]."/".$data[1]."/".$data[0];
 
Undefined offset: 1
 
2:59 PM
dá só um echo $rowEvento[data]
pra ver o que vem
 
faz a consulta normal mas aparece no americano
2015-07-20
 
$data = explode("-", $rowEvento['data']);
$data_ptbr = $data[2]."/".$data[1]."/".$data[0];

echo $data_ptbr;
 
foi :)
 
:)
Deu certo então
 
voce excluiu o - da string
com explode certo ?
 
3:05 PM
não
eu separei ela
com o explode, pra poder exibir da forma correta
 
voce separou com explode!
então a variavei data fica como se fosse um array com o restante das palavras?
 
exatamente.
fica como array
 
(Y)
perfect.
 
e ela estando dentro da array, só criar a variavel e exibir ela
=]
 
isso é pra uma homepage que querem exibir os eventos de acordo com a data mais proxima
 
3:06 PM
uhmmm entendi
 
o fulano vai lançar no db os eventos e as datas e na home tem que aparecer o proximo evento
 
se quiser me add no skype: srandrebaill to sempre online
 
Obrigado!
 
por nada, só dá um aceite na minha resposta lá :D
 
de onde você é ?
 
3:06 PM
sou de Curitiba, PR
e você?
 
Bacana.
Se puder, dá um aceite na minha resposta. E se precisar, pode add que te ajudo sempre que puder.
 
peguei esse projeto pela metade, se voce soubesse como ta o código voce choraria de dar risada
igual eu
 
rsrsrrrs
 
Beleza :)
 
3:10 PM
é ruim pegar um projeto pela metade
 
adc no skype ja
 
sempre quando isso acontece, eu refaço tudo
 
hahaha
mas o projeto esta mais que atrasado e o povo nao quis recomeçar
 
falamos por skype :)
 

last day (15 days later) »