Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

hapro

Pesquisa

Mensagens Recomendadas

hapro    2
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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo    1151
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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
hapro    2
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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
hapro    2
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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.