miutinhu 0 Report post Posted July 22, 2009 Gostaria de conseguir consultar por data; o campo data chama Inf_Terc_Data aqui es tá meu codigo; $con = mysql_connect("localhost", "root", "root"); //logando no banco de dados mysql_select_db("Bd_Apariciofer", $con); //Conectando no banco de dados escolhido $test= $_SESSION[Teste]; $sql="SELECT * FROM tbl_inf_terc WHERE Inf_Terc_Forn='$test'"; $resultado=mysql_query($sql) or die(mysql_error()); while($dados = mysql_fetch_array($resultado)) { echo 'Nota Fiscal - '.$dados['Inf_Terc_NNota'].' / '; echo 'Material - '.$dados['Inf_Terc_Material'].' / '; echo 'Nome Fornecedor - '.$dados['Inf_Terc_Forn'].'<br>'; } estava tentando seguir um tutorial e ficou assim; $data_inicial = $_POST ["data_inicial"]; $data_final = $_POST ["data_final"]; $sq = "SELECT Inf_Terc_material,COUNT (*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC"; $result = @mysql_query($sq); Mas ficou meio nada a ver; não sei como prosseguir; procurei alguns tutoriais não achei se não estiverem com tempo de ajudar, ao menos me indiquem um tutorial; bom o que o sistema vai fazer usuario logou; ele só vai poder consultar as coisas cadastradas em seu nome ai ele poderá consultar por data Share this post Link to post Share on other sites
~TiuTalk~ 7 Report post Posted July 22, 2009 Todas as datas (a armazenada no banco e as usadas na comparação com BETWEEN) devem estar no foramato AAAA-MM-DD ou AAAA-MM-DD HH:MM:SS... Caso contrário você vai precisar converter valores para conseguir. Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 sim, estão no formato aaaa-mm-dd mas não funciona mesmo eu pesquisando a data desse jeito; aparece todos os registros e não só da data a data Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 $leo= $_SESSION[Teste]; $data_inicial = $_POST ["data_inicial"]; $data_final = $_POST ["data_final"]; $sq = "SELECT Inf_Terc_material,COUNT (*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC"; $result = @mysql_query($sq); $leo= $_SESSION[Teste]; $sql="SELECT * FROM tbl_inf_terc WHERE Inf_Terc_Forn='$leo'"; $resultado=mysql_query($sql) or die(mysql_error()); while($dados = mysql_fetch_array($resultado)) { echo 'Nota Fiscal - '.$dados['Inf_Terc_NNota'].' / '; echo 'Material - '.$dados['Inf_Terc_Material'].' / '; echo 'Nome Fornecedor - '.$dados['Inf_Terc_Forn'].'<br>'; } estou meio confuso, nao consegui pensar em nada pra separar de tal data a tal Share this post Link to post Share on other sites
Rafael Izidoro 0 Report post Posted July 22, 2009 $leo= $_SESSION[Teste]; $data_inicial = $_POST ["data_inicial"]; $data_final = $_POST ["data_final"]; $sq = "SELECT Inf_Terc_material,COUNT (*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC"; $result = @mysql_query($sq); $leo= $_SESSION[Teste]; $sql="SELECT * FROM tbl_inf_terc WHERE Inf_Terc_Forn='$leo'"; $resultado=mysql_query($sql) or die(mysql_error()); while($dados = mysql_fetch_array($resultado)) { echo 'Nota Fiscal - '.$dados['Inf_Terc_NNota'].' / '; echo 'Material - '.$dados['Inf_Terc_Material'].' / '; echo 'Nome Fornecedor - '.$dados['Inf_Terc_Forn'].'<br>'; } estou meio confuso, nao consegui pensar em nada pra separar de tal data a tal Verifique a sql que a variavel $sq está gerando, e tente executar esta sql direto no banco (utilize o phpmyadmin ou outro cliente mysql). Veja se o retorno da query é o que você espera. Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 SELECT Inf_Terc_material,COUNT (*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '2008-01-01' AND '2008-01-10' ORDER BY data ASC aparece isso e se eu tento mostrar a $result não aparece nada; desculpem, mas agradeço desde já vou descansar; fiquem com deus Share this post Link to post Share on other sites
Matias Rezende 50 Report post Posted July 22, 2009 Se pegar esta query que você postou e jogar no cliente mysql (phpmyadmin), retorna os resultados esperados, nenhum resultado ou todos os resultados? Outra coisa, você percebeu que a data inicial e a data final estão iguais? Era para ser assim mesmo? Carlos Eduardo Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 SELECT Inf_Terc_material, COUNT( * ) inf_terc_material FROM tbl_inf_terc WHERE inf_terc_data BETWEEN '2008-01-01' AND '2008-01-01' Aparece Um registro =/ o primeiro registro da Tabela; e a quantidade de cadastros na tabela; SELECT Inf_Terc_material, COUNT( * ) inf_terc_material FROM tbl_inf_terc WHERE inf_terc_data BETWEEN '2008-01-01' AND '2008-01-10' Aparece Um registro =/ o primeiro registro da Tabela; e a quantidade de cadastros na tabela; como assim datas inicial e final estão iguais?! ps: EU TROQUEI O VALOR DA VARIAVEL POR VALORES MESMO pra testar no sql! Peço desculpas gente, sou iniciante, desculpa pelo trabalho mesmo; Share this post Link to post Share on other sites
.:: Pegasus ::. 0 Report post Posted July 22, 2009 Esse select: SELECT Inf_Terc_material,COUNT (*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '2008-01-01' AND '2008-01-10' ORDER BY data ASC Quando feito direto no mysql mostra apenas um resultado... Era o esperado? Share this post Link to post Share on other sites
Matias Rezende 50 Report post Posted July 22, 2009 Quando sugerimos pegar o que tem na $sq, é para dar um echo nela antes de executar. Assim... $sq = "SELECT Inf_Terc_material,COUNT (*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '$data_inicial' AND '$data_final' ORDER BY data ASC"; echo 'Esta é a query $sql'.$sq; $result = @mysql_query($sq); Pegue o que imprimir na tela e jogue no phpmyadmin. Carlos Eduardo Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 já o fiz; apareceu o primeiro material; e a quantidade de procutos na tabela; na verdade eu queria que aparecesse os materiais; mas, eu conseguindo fazer isso funcionar no PHP, eu tento fazer o restante; no SQL funciona o que eu quero; mais ou menos =$ mas no PHP não; Share this post Link to post Share on other sites
Matias Rezende 50 Report post Posted July 22, 2009 Faz o que eu falei e posta o que imprimiu. Carlos Eduardo Share this post Link to post Share on other sites
.:: Pegasus ::. 0 Report post Posted July 22, 2009 Como você pode ter certeza que o problema está no php se nem sua consulta está certa? Primeiro resolva o problema com a consulta, tendo certeza de que a query está ok, você passa pro PHP. Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 Codigo no PHP $sq = "SELECT Inf_Terc_material,COUNT(*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '$data_inicial' AND '$data_final'"; echo $sq; Imprimiu isso: SELECT Inf_Terc_material,COUNT(*) inf_terc_material from tbl_inf_terc WHERE inf_terc_data BETWEEN '2008-01-01' AND '2008-01-01' colei no myphpadmin Apareceu isso Inf_Terc_material inf_terc_material asdasd 3 Share this post Link to post Share on other sites
Matias Rezende 50 Report post Posted July 22, 2009 O que era para aparecer? Carlos Eduardo Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 de fato todos os materiais e nao o MATERIAL e a quantidade de notas mas isso eu jogo o loop depois; so queria que aparecesse no php, pois consigo fazer aparecer no SQL :( Share this post Link to post Share on other sites
Matias Rezende 50 Report post Posted July 22, 2009 pois consigo fazer aparecer no SQL Como você faz no SQL? Carlos Eduardo Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 SELECT Inf_Terc_material, COUNT( * ) inf_terc_material FROM tbl_inf_terc WHERE inf_terc_data BETWEEN '2008-01-01' AND '2008-01-01' LIMIT 0 , 30 (as datas digitadas 2008-01-01) são as que estavam na caixa de texto; no caso é o comando que o ECHO $SQ imprimiu Share this post Link to post Share on other sites
Matias Rezende 50 Report post Posted July 22, 2009 Tá... só que isto vai exibir exatamente a mesma coisa, sendo no PHP ou no Mysql, porque a query é exatamente igual. A query só vai trazer um resultado diferente se ela for diferente. Para fazer a consulta por data, é exatamente como você está fazendo. Só não entendi o que você quer com o COUNT. Carlos Eduardo Share this post Link to post Share on other sites
miutinhu 0 Report post Posted July 22, 2009 então pra que eu faça uma consulta de DATA A DATA eu faria isso (O CONT estava lá pois vi em um tutorial; $data_inicial = $_POST ["data_inicial"]; $data_final = $_POST ["data_final"]; $sq = "SELECT Inf_Terc_material FROM tbl_inf_terc WHERE inf_terc_data BETWEEN '$data_inicial' AND '$data_final'"; //echo $sq; $result=mysql_query($sq) or die(mysql_error()); //echo $result; while($dados = mysql_fetch_array($result) { echo 'Nota Fiscal - '.$dados['Inf_Terc_NNota'].' / '; echo 'Material - '.$dados['Inf_Terc_Material'].' / '; echo 'Nome Fornecedor - '.$dados['Inf_Terc_Forn'].'<br>'; } SE FOR ISSO CONTINUA SEM DAR CERTO, não puxa os dados Share this post Link to post Share on other sites