Pessoal, estou batendo cabeça faz uns 3 dias nesses código pra fazer o módulo de busca do meu site funcionar, a princípio é coisa bem básica, porém estou passando 3 argumentos como referência da busca (modelo,motor e ano).Só para nível de informação, o programa em questão é para controle de estoque de uma loja de peças automotivas ,portanto, a passagem de mais de um parâmetro na hora da busca já agiliza o processo de achar alguma peça, tendo em vista que tem milhares no estoque.
Segue o código abaixo:
<?php
//captura informações do formulário
$modelo = $_POST['modelo'];
$motor = (float)($_POST['motor']);
$ano = intval($_POST['ano']);
// Usa a função mysql_real_escape_string() para evitar erros no MySQL
$modelo = mysql_real_escape_string($modelo);
$motor = mysql_real_escape_string($motor);
$ano = mysql_real_escape_string($ano);
//conecta-se ao banco de dados
$mysql['servidor'] = "localhost:8888";
$mysql['usuario'] = "root";
$mysql['senha'] = "root";
$mysql['banco'] = "banco";
$banco = mysql_connect($mysql['servidor'],$mysql['usuario'],$mysql['senha']);
if($banco == NULL)
{
echo "Erro ao conectar o servidor!";
exit();
}
else
{
$con = mysql_select_db($mysql['banco'],$banco);
if(!$con)
{
echo "Erro ao acessar a base de dados!";
exit();
}
}
//monta a query de busca, inserindo o nome como parâmetro
$query ="SELECT * FROM `banco` WHERE (`modelo` LIKE '%$modelo%') AND (`motor` LIKE '%$motor%') AND (`ano` LIKE '%ano%')";
//executa a query
$res = mysql_query($query);
while($mostra = mysql_fetch_array($res)) {
$marca = $mostra['marca'];
$modelo = $mostra['modelo'];
$ano = $mostra['ano'];
$motor = $mostra['motor'];
$peca = $mostra['peca'];
$corlata = $mostra['corlata'];
$nportas = $mostra['nportas'];
$preço = $mostra['preço'];
echo "<tr>";
//exibe os resultados
echo "<td> .$marca </td>";
echo "<td> .$modelo </td>";
echo "<td> .$ano </td>";
echo "<td> .$motor </td>";
echo "<td> .$peca </td>";
echo "<td> .$corlata </td>";
echo "<td> .$nportas </td>";
echo "<td> .$preço </td>";
echo "</tr>";
}
//encerra a tabela
//encerra a conexão mysq
mysql_close($con);
?>
Estou usando um formulário POST para mandar os parâmetros da busca para o search.php.
O código original não era assim tão seco, desmembrei ele um pouco só pra ver se ele me mostrava alguma informação mesmo, mas não me retorna nada :/
Pergunta
victor_santos
Pessoal, estou batendo cabeça faz uns 3 dias nesses código pra fazer o módulo de busca do meu site funcionar, a princípio é coisa bem básica, porém estou passando 3 argumentos como referência da busca (modelo,motor e ano).Só para nível de informação, o programa em questão é para controle de estoque de uma loja de peças automotivas ,portanto, a passagem de mais de um parâmetro na hora da busca já agiliza o processo de achar alguma peça, tendo em vista que tem milhares no estoque.
Segue o código abaixo:
<?php //captura informações do formulário $modelo = $_POST['modelo']; $motor = (float)($_POST['motor']); $ano = intval($_POST['ano']); // Usa a função mysql_real_escape_string() para evitar erros no MySQL $modelo = mysql_real_escape_string($modelo); $motor = mysql_real_escape_string($motor); $ano = mysql_real_escape_string($ano); //conecta-se ao banco de dados $mysql['servidor'] = "localhost:8888"; $mysql['usuario'] = "root"; $mysql['senha'] = "root"; $mysql['banco'] = "banco"; $banco = mysql_connect($mysql['servidor'],$mysql['usuario'],$mysql['senha']); if($banco == NULL) { echo "Erro ao conectar o servidor!"; exit(); } else { $con = mysql_select_db($mysql['banco'],$banco); if(!$con) { echo "Erro ao acessar a base de dados!"; exit(); } } //monta a query de busca, inserindo o nome como parâmetro $query ="SELECT * FROM `banco` WHERE (`modelo` LIKE '%$modelo%') AND (`motor` LIKE '%$motor%') AND (`ano` LIKE '%ano%')"; //executa a query $res = mysql_query($query); while($mostra = mysql_fetch_array($res)) { $marca = $mostra['marca']; $modelo = $mostra['modelo']; $ano = $mostra['ano']; $motor = $mostra['motor']; $peca = $mostra['peca']; $corlata = $mostra['corlata']; $nportas = $mostra['nportas']; $preço = $mostra['preço']; echo "<tr>"; //exibe os resultados echo "<td> .$marca </td>"; echo "<td> .$modelo </td>"; echo "<td> .$ano </td>"; echo "<td> .$motor </td>"; echo "<td> .$peca </td>"; echo "<td> .$corlata </td>"; echo "<td> .$nportas </td>"; echo "<td> .$preço </td>"; echo "</tr>"; } //encerra a tabela //encerra a conexão mysq mysql_close($con); ?>Estou usando um formulário POST para mandar os parâmetros da busca para o search.php.
O código original não era assim tão seco, desmembrei ele um pouco só pra ver se ele me mostrava alguma informação mesmo, mas não me retorna nada :/
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.