
Mais Um Problema Com Datas
#1
Posted 09/01/2006, 22:19
sou iniciante em PHP, portanto isso deve ser bem fácil,
estou querendo fazer uma busca em uma tabela onde quero todos os registros que sejam do mês de março (03) por exemplo... eu pesquisei um pouco vi a função MONTH(), porém não estou conseguindo colocá-la pra funcionar...
fiz dessa forma,
na tabela tem um campo data_desejada em formato DATE, o código do select é:
$sql = "SELECT * FROM tabela WHERE MONTH(data_desejada) = ".$_POST["mes"];
$row = @mysql_num_rows($sql);
//VERIFICA SE RETORNOU ALGO
if($row == 0) echo "Não encontrei nada";
porém sempre retorna o
Não encontrei nada... sendo que há campos com o mês procurado.
Grato,
#2
Posted 09/01/2006, 23:46
usa a função explode para fazer a converção da data que vc digita para o formato date
tipow se sua data que está no db está no formato mm/dd/aa
e a data que vc vae digitar esta no formato dd/mm/aa
use a função explode pra montar a data que voce digitar no formato mm/dd/aa
exemplo
$data_do_form = $POST['mes']; $data_ex = explode ("/", $data_do_form); $data_convertida = $data_ex[1]."/".$data_ex[0]."/".$data_ex[2];
entaum seu select deve ficar assim:
$sql = "SELECT * FROM tabela WHERE data_desejada ='$data_convertida'"; $resultado = mysql_query($sql) or die ("ERRO!".mysql_error());
bom axo q deve ser isso, se num grita ae rsrs

se eu naum estiver enganado isso deve funcionar

Conhece o GOOGLE ?
Search The Fucking Web!
#3
Posted 10/01/2006, 06:18
T+
PALMEIRAS - Primeiro campeão do mundo em 1951
#4
Posted 10/01/2006, 07:15
SELECT DATE_FORMAT(campo_data, '%d/%m/%Y');
Como mexer com datas no MySQL:
http://dev.mysql.com...-functions.html
Até
#5
Posted 10/01/2006, 07:53

Veja esse comentario no site do mysql:
Posted by Luke Burgess on February 21 2005 7:11pm [Delete] [Edit]
There doesn't appear to be an official way of selecting * from a table where eg 'date is january 2005'. So far i've found 8 different ways!!
1. where date like '2005-01-%'
2. where DATE_FORMAT(date,'%Y-%m')='2005-01'
3. where EXTRACT(YEAR_MONTH FROM date)='200501'
4. where YEAR(date)='2005' and MONTH(date)='1'
5. where substring(date,1,7)='2005-01'
6. where date between '2005-01-01' and '2005-01-31'
7. where date >= '2005-01-01' and date <= '2005-01-31'
8. where date IN('2005-01-01','2005-01-02','2005-01-03','2005-01-04',
'2005-01-05','2005-01-06','2005-01-07','2005-01-08','2005-01-09',
'2005-01-10',2005-01-11','2005-01-12','2005-01-13','2005-01-14',
'2005-01-15','2005-01-16','2005-01-17','2005-01-18','2005-01-19',
'2005-01-20', '2005-01-21','2005-01-22','2005-01-23','2005-01-24',
'2005-01-25','2005-01-26','2005-01-27','2005-01-28','2005-01-29',
'2005-01-30','2005-01-31')
Parece que e' no seu codigo:
1. nao esta sendo executado o pedido
2. pedido incompleto
$sql = "SELECT * FROM tabela WHERE MONTH(data_desejada) = '{$_POST[mes]}';"; $resultado = mysql_query($sql); $row = mysql_num_rows($resultado);
O codigo acima deve funcionar.
Se voce quer apenas saber a quantidade, use a funcao COUNT do mysql assim:
SELECT COUNT(id) FROM tabela WHERE MONTH(data_desejada) = '{$_POST[mes]}';Ai e' so interpretar o resultado.

Evite usar o @, que serve para esconder erros, antes de funcoes pois isso dificulta encontrar problemas.
#6
Posted 11/01/2006, 14:18
Consegui resolver o meu problema...
Obrigado
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)