Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

hapro

Pesquisa

Recommended Posts

hapro

bom dia,

Eu queria que alguem me ajudasse a completar ou melhorar o codigo php. O problema é que quero que o utilizador pode pesquisar a palavra chave ou por categoria. o que me acontece é que só pesquisa pela a palavra ou categoria dependendo que variavel meter e não consigo os dois ao mesmo tempo, ja andei a pesquisar e não encontrei.

<form name="search" id="form" method="POST" action="index.php">
  <input type="text" placeholder="pesquisar" name="busca"/>
  <input type="submit" value="pesquisar"/>
  <select name="marca">
    <option type="button" name="tudos" value="tudos"><a href="#">Tudos</a>
    <option type="button" name="honda" value="honda"><a href="#">honda</a>
    <option type="button" name="yamaha" value="yamaha"><a href="#">yamaha</a>
    <option type="button" name="kawasaki" value="kawasaki"><a href="#">kawasaki</a>
    <option type="button" name="briggs e stratton" value="briggs e stratton"><a href="#">briggs e stratton</a>
  </select>
</form>
<?php
$busca = $_POST['busca'];
$marca = $_POST['marca'];
$sql = mysql_query("SELECT * FROM motas WHERE marca LIKE '%".$busca."%' ORDER BY ID DESC");
					
while($linha = mysql_fetch_array($sql)){
  $marca = $linha['marca'];
  $img = $linha['img'];
  $link = $linha['link'];
  echo '<div class="view second-effect">';
  echo "<img src=\"../$img\" />";
  echo '<div class="mask">';
  echo "<a href=\"$link\" class='info'>"$marca"</a>";
  echo '</div>';
  echo '</div>';
}
?>

Obrigado,

Se precisarem de mais avisem.

Abraços


Melhores cumprimentos,

HAPRO

Share this post


Link to post
Share on other sites
HappyHippyHippo
$posts = ['busca', 'marca'];

$params = [];
foreach ($posts as $post) {
    if (array_key_exists($post, $_POST) && $_POST[$post]) {
        $params[] = " marca LIKE '%".$_POST[$post]."%' ";
    }
}

$sql = mysql_query("SELECT *
                    FROM motas
                    WHERE ".(implode(" OR ", $params))."
                    ORDER BY ID DESC");

 


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
hapro
Em 8/19/2016 às 11:21, HappyHippyHippo disse:

$posts = ['busca', 'marca'];

$params = [];
foreach ($posts as $post) {
    if (array_key_exists($post, $_POST) && $_POST[$post]) {
        $params[] = " marca LIKE '%".$_POST[$post]."%' ";
    }
}

$sql = mysql_query("SELECT *
                    FROM motas
                    WHERE ".(implode(" OR ", $params))."
                    ORDER BY ID DESC");

 

podes me explicar a parte dos $post que não tou a perceber 


Melhores cumprimentos,

HAPRO

Share this post


Link to post
Share on other sites
hapro

Já percebi, obrigado, o que quero mesmo é a variável busca vai para uma coluna na base de dados e a variável marca vai para outra.

Obrigado


Melhores cumprimentos,

HAPRO

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.