Alexandre Camargo Posted February 2, 2012 Report Share Posted February 2, 2012 Olá, estou tendo um problema chato com o mysql!eu digito uma palavra, e ela precisa achar o correspondente no mysql, ele acha mas só que não lista tudo q ele acha no mysql!o codigo php é assim!<?php include("conectamysql.php"); $tabela = $_POST['valor']; $consulta = mysql_query("SELECT * FROM produto WHERE categoria LIKE '$tabela%' ") or die(mysql_error()); if(!$dados=mysql_fetch_array($consulta)) { print"Não Há Registros!!"; } else { print"<table width='850'>"; print" <tr> <td style='background:#d3dce3;' align='center'><b>Cód. Estab.</b></td> <td style='background:#d3dce3;' align='center'><b>Nº de Fábrica</b></td> <td style='background:#d3dce3;' align='center'><b>Descrição</b></td> <td style='background:#d3dce3;' align='center'><b>Categoria</b></td> <td style='background:#d3dce3;' align='center'><b>Preço de Custo</b></td> <td style='background:#d3dce3;' align='center'><b>P. de Lucro (%)</b></td> <td style='background:#d3dce3;' align='center'><b>Preço de Venda</b></td> <td style='background:#d3dce3;' align='center'><b>Estoque</b></td> </tr> "; while($dados = mysql_fetch_array($consulta)) { print" <tr> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['codigo']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['numero_fabrica']."</td> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['descricao']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['categoria']."</td> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['preco_custo']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['porcentagem']."</td> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['preco_final']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['estoque']."</td> </tr> "; } print"</table>"; } ?>Exemplo: eu sei que na tabela do mysql existem dois produtos com a categoria oleo, mas quando eu digito para procurar o produto, ele só mostra um produto em vez de mostrar os dois!Preciso urgente de ajuda!MUITO OBRIGADO! Quote Link to comment Share on other sites More sharing options...
0 dedas Posted February 2, 2012 Report Share Posted February 2, 2012 Troque esta linha:$consulta = mysql_query("SELECT * FROM produto WHERE categoria LIKE '$tabela%' ") or die(mysql_error()); por essa: $consulta = mysql_query("SELECT * FROM produto WHERE categoria LIKE '%".$tabela."%' ") or die(mysql_error()); Quote Link to comment Share on other sites More sharing options...
0 Alexandre Camargo Posted February 2, 2012 Author Report Share Posted February 2, 2012 Ainda continua com o mesmo problema :( Quote Link to comment Share on other sites More sharing options...
0 mJi Posted February 3, 2012 Report Share Posted February 3, 2012 Quando você checa se há resultados naquele if(), você já dá um fetch no primeiro resultado retornado e acaba perdendo este resultado. Verifique a quantidade de dados retornados com mysql_num_rows(), ou quem sabe um SELECT COUNT.Algo assim:<?php include("conectamysql.php"); $tabela = $_POST['valor']; $consulta = mysql_query("SELECT * FROM produto WHERE categoria LIKE '$tabela%' ") or die(mysql_error()); if(!mysql_num_rows($consulta)){ print"Não Há Registros!!"; }else{ print"<table width='850'>"; print" <tr> <td style='background:#d3dce3;' align='center'><b>Cód. Estab.</b></td> <td style='background:#d3dce3;' align='center'><b>Nº de Fábrica</b></td> <td style='background:#d3dce3;' align='center'><b>Descrição</b></td> <td style='background:#d3dce3;' align='center'><b>Categoria</b></td> <td style='background:#d3dce3;' align='center'><b>Preço de Custo</b></td> <td style='background:#d3dce3;' align='center'><b>P. de Lucro (%)</b></td> <td style='background:#d3dce3;' align='center'><b>Preço de Venda</b></td> <td style='background:#d3dce3;' align='center'><b>Estoque</b></td> </tr> "; while($dados = mysql_fetch_array($consulta)){ print" <tr> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['codigo']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['numero_fabrica']."</td> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['descricao']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['categoria']."</td> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['preco_custo']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['porcentagem']."</td> <td style='background:#e5e5e5; font-size: 13px;' align='center'>".$dados['preco_final']."</td> <td style='background:#d5d5d5; font-size: 13px;' align='center'>".$dados['estoque']."</td> </tr> "; } print"</table>"; } ?> Quote Link to comment Share on other sites More sharing options...
0 Alexandre Camargo Posted February 3, 2012 Author Report Share Posted February 3, 2012 Muitooo Obrigado! Quote Link to comment Share on other sites More sharing options...
Question
Alexandre Camargo
Olá, estou tendo um problema chato com o mysql!
eu digito uma palavra, e ela precisa achar o correspondente no mysql, ele acha mas só que não lista tudo q ele acha no mysql!
o codigo php é assim!
Exemplo: eu sei que na tabela do mysql existem dois produtos com a categoria oleo, mas quando eu digito para procurar o produto, ele só mostra um produto em vez de mostrar os dois!
Preciso urgente de ajuda!
MUITO OBRIGADO!
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.