Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Boca

Formato Data

Recommended Posts

Pessoal sou iniciante em PHP estou com um problema que ainda não sei resolver, gostaria de saber se alguém pode me ajudar.

 

preciso fazer um select mas no meu banco de dados no campo data só que alguns registros por exemplo estão no formato (abr/04 e outros abr/2004), estou fazendo um select apartir de um formulário para o select abaixo

 

formulario.php

<form name="form1" method="post" action="select.php">   <select name="data" class="select">    <option>Selecione</option>    <option value="jan/2004">jan/2004</option>    <option value="fev/2004">fev/2004</option>    <option value="mar/2004">mar/2004</option>    <option value="abr/2004">abr/2004</option>    <option value="mai/2004">mai/2004</option>    <option value="jun/2004">jun/2004</option>    <option value="jul/2004">jul/2004</option>    <option value="ago/2004">ago/2004</option>    <option value="set/2004">set/2004</option>    <option value="out/2004">out/2004</option>    <option value="nov/2004">nov/2004</option>    <option value="dez/2004">dez/2004</option>  </select>  <input type="submit" name="Submit" value="VISUALIZAR">   </form>

select.php

PHP [/tr][tr]$data= $_POST['data'];

 

$selecao = mysql_query("SELECT * FROM assinantes WHERE data LIKE '$data' ",$con);

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP [/tr][tr]

$data= $_POST['mes'];

 

$selecao = mysql_query("SELECT * FROM assinantes WHERE data = ' " . $data . " ' ",$con);

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom como eles estão em formatos você pode usar o like da seguinte forma..."SELECT FROM assinantes WHERE data LIKE '$data%'";fazendo isso você ira trazer todos os dados que começem com o valor que você está passando...como você tem as datas nesses dois formatos:abr/04 e outros abr/2004com certeza ele irá buscar qualquer uma...abraçosMarcio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal tentei das duas formas.

 

PHP [/tr][tr]("SELECT * FROM assinantes WHERE data = ' " . $data . " ' ",$con);

[/tr]

Assim não traz nenhum resusltado

 

PHP [/tr][tr]("SELECT FROM assinantes WHERE data LIKE '$data%'",$con);[/tr]

e assim continua trazendo somente abr/2004

 

valeu mesmo por estar ajudando pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

estranho pelos valores que você falou que tem no banco daquela forma teria que funcionar...bom mas vamos a outra...SELECT * FROM assinantes WHERE data REGEXP '^$data';testa lá para a gente ver e qualquer coisa grita ai!!!abraçosMarcio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta novamente

 

PHP [/tr][tr]
("SELECT FROM assinantes WHERE data LIKE <font color="red">'$data%'</font>",<font color="#1C8C00">$con</font>);
[/tr]

 

mas alterando o formulario.php para:

 

<form name="form1" method="post" action="select.php">  <select name="data" class="select">   <option>Selecione</option>   <option value="jan/04">jan/04</option>   <option value="fev/04">fev/04</option>   <option value="mar/04">mar/04</option>   <option value="abr/04">abr/04</option>   <option value="mai/04">mai/04</option>   <option value="jun/04">jun/04</option>   <option value="jul/04">jul/04</option>   <option value="ago/04">ago/04</option>   <option value="set/04">set/04</option>   <option value="out/04">out/04</option>   <option value="nov/04">nov/04</option>   <option value="dez/04">dez/04</option> </select> <input type="submit" name="Submit" value="VISUALIZAR">  </form>
pode ser que dê.

 

Hasta luego.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql> SELECT * FROM assinantes WHERE data REGEXP [$data]*;coloca assim mas com o modelo do rudini...acredito que funcione...mas tem que ser com o modelo que ele lhe postou, não com o seu!!!abraçosMarciose funcionar avise!!!rs....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já estou enchendo..... Coloquei desta forma

 

PHP [/tr][tr]$selecao = mysql_query("SELECT FROM assinantes WHERE data REGEXP [$data]*",$con);

$linhas = mysql_num_rows($selecao);

[/tr]

 

mudei tb com solicitado

<form name="form1" method="post" action="select.php"> <select name="data" class="select">  <option>Selecione</option>  <option value="jan/04">jan/04</option>  <option value="fev/04">fev/04</option>  <option value="mar/04">mar/04</option>  <option value="abr/04">abr/04</option>  <option value="mai/04">mai/04</option>  <option value="jun/04">jun/04</option>  <option value="jul/04">jul/04</option>  <option value="ago/04">ago/04</option>  <option value="set/04">set/04</option>  <option value="out/04">out/04</option>  <option value="nov/04">nov/04</option>  <option value="dez/04">dez/04</option></select><input type="submit" name="Submit" value="VISUALIZAR"> </form>
deu o seguinte erro.

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM assinantes WHERE data REGEXP '[$data]*';faltou as aspas!!!rs...a gente chega lá...

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu o mesmo erro

 

PHP [/tr][tr]$selecao = mysql_query("SELECT FROM assinantes WHERE data REGEXP '[$data]*'",$con);

$linhas = mysql_num_rows($selecao);

[/tr]

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai meu deus!!! rs..tira o asterisco...$selecao = mysql_query("SELECT FROM assinantes WHERE data REGEXP [$data]",$con); tá mas continua como antes com o form do rudini...acho que agora vai...ou não...Marcio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei assim

 

PHP [/tr][tr]$selecao = mysql_query("SELECT FROM assinantes WHERE data REGEXP [$data]",$con);

[/tr]

tentei tb com aspas

PHP [/tr][tr]$selecao = mysql_query("SELECT FROM assinantes WHERE data REGEXP '[$data]'",$con);

[/tr]

 

e deu o memso erro, que se refere a linha

 

 

PHP [/tr][tr]$linhas = mysql_num_rows($selecao);[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

deve ter alguma coisa estranha aí no seu banco, quel o tipo do campo, STRING, INT, VARCHAR... da mais detalhes... você usa win ou linux, se for win pega o mysql-front, faz um select dos dados no editor SQL e poe estes comandos SQL daqui dos posts e ve o que retorna...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Rockbilly, meu servidor esta em Linux o tipo do campo é varchar(15)

Boca, tenta fazer o seguinte, entre no diretorio bin das pasta de instalação do mysql e digite:

PHP [/tr][tr]mysql -u root -p[/tr]
deve aparecer a senha, dai você poe a senha do adm do banco se tiver

você deve cair numa tela assim:

PHP [/tr][tr]mysql>[/tr]
escolha o banco com o comando:

PHP [/tr][tr]mysql>use banco;[/tr]
mysql>show tables;

entre com a consulta SQL:

PHP [/tr][tr]mysql>SELECT data FROM tabela;[/tr]

ve o que aparece, aparece todos com o mesmo valor ou diferente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer uma consulta atraves de meu phpMyAdmin e informa,

Exemplo:ago/00

ago/2000

jan/02

mar/2002

jul/2003

abr/04

abr2004

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rockbilly, não tenho acesso ao servidor pois o mesmo se encontra externo

mas la no servidor não tem o PHPMYADMIN, programa em q você usa para modificar informações do seu banco? é semelhante ao mysql-front, so q para UNIX! tente checkar com o pessoal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.