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

hugomarques

[Resolvido] Pesquisar em Php

17 mensagens neste tópico

Boas,

estou a fazer um projecto com Php e MySql...preciso de fazer um formulario para pesquisar os dados de uma tabela...Por exemplo:

o utilizador pretende listar todas as viaturas de uma determinada marca...existe uma text box onde o utilizador introduz a marca e ao clicar no botao 'Ok' aparece a lista das viaturas dessa marca mas na mesma pagina...o codigo para listar ja esta feito...mas nao sei como fazer para aparecer tudo na mesma pagina...penso que com JavaScript dava mas eu nao tenho nenhuns conhecimentos....

Agradecia ajuda....

Cump's hugomarques

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é feito mesmo com php e sql.

Este código não  está pronto a usar, mas vê se o percebes que está aqui a forma básica de fazer isso que queres.

$marca="toyota";
$sql = "select * from carros where marca=$marca";

while ($linha=mysql_fetch_array($sql)){
     print_r($linha);
}

Claro que falta formatar o html, limpar as strings inesridas no query, etc etc. Mas a ideia base é esta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim eu percebi o codigo mas o que eu queria mesmo era quando o utilizador inserir a marca pretendida e clicar no ok iria aparecer na mesma pagina a lista de todas as viaturas dessa marca

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para dizeres isso é porque não percebeste o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para dizeres isso é porque nao percebe e quer que alguem faça o codigo para ele, qual é a dificuldade de fazeres isso rapaz?!?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se tens a tabela é o que o Pedrotuga disse.Mas queres o form e isso??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na pagina onde tens a textbox suponho esta tenha um form por trás correcto?

algo deste género:

<form name="lista" method="post" action="">

</form>

O action vazio como reparas-te, vai mandar um post para a propria pagina (se não me engano, caso contrário pões o nome da pagina) com o valor da caixa de texto.

onde queres que a listagem seja feita colocas:

$marca = $_post['marca']; (sendo marca o nome que des-te á textbox)

if($marca !="")

{

$sql = "select * from carros where marca=$marca";

while ($linha=mysql_fetch_array($sql)){
     print_r($linha);
}

}

O que isto faz é:

Só faz a listagem se alguem inserir um valor na caixa de texto e primir OK, caso prima ok sem a caixa preenchida não faz nada, pois não é devolvido nenhum valor...

Colocas tudo na propria pagina, depois aperfeiçoas o codigo que o pedrotuga te deu.

è isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@Tsunamy_boy

Tenta evitar posts desses, por duas simples razões:

1) Pareces o djthyrax (:x) a supor coisas... Não sabemos se realmente o problema dele reside ai ou não, tanto pode ser como não ser. Não serve de nada estar aqui o pessoal todo a especular sobre qual possa ser a dúvida dele. Só vamos poluir o tópico e confundir mais as coisas. Não custa nada esperar que o autor venha aqui e explique melhor a sua dúvida.

2) Tas a incentivar o autor a que da próxima vez continue a fazer o mesmo. Ou seja, tas-lhe a dar a papinha toda feita, ele assim não aprende e daqui por uns dias tem outra dúvida relacionada com o mesmo porque ninguém lhe explicou, apenas lhe deram já feito. A resposta do pedrotuga foi mais que suficiente para o autor solucionar o problema. Se ainda continuar com dúvidas, o que é perfeitamente legitimo, que as explicite que nós estamos cá para ajudar.

É a minha opinião e apesar de te estar a dizer isto a ti, já vi outros utilizadores a fazer o mesmo o qual eu acho que não deve sr feito pelas razões acima enunciadas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a esquecer que maior parte das pessoas quando posta em fóruns é porque quer a papinha feita. Com um bocado de esforço encontra-se de tudo na net.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já consegui resolver o problema...obrigado pela ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Off-topic:

1) Pareces o djthyrax (:x)

Tu és mesmo chatinho, sabias? :P

hugomarques, como resolveste?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Off-topic:Tu és mesmo chatinho, sabias? :P

hugomarques, como resolveste?

Olha mais abaixo do número de mensagens que tenho... Nothing but the truth :P

</offtopic>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resolvi o problema desta maneira:

<?php

include("global.inc");//ligacao a BD

$query_string ="select Matricula from viatura";

if(isset($_POST['filtro'])) {

$query_string .= " where matricula like '%" . $_POST['filtro'] .

"%'";

}

?> <form method="post" action="pesquisar.php">

Matricula: <input type="text" name="filtro" />

<input type="submit" value=" Filtrar " />

</form>

<table border="1" >

<tr>

<th>Matricula</th>

</tr>

<?php

$qid = mysql_query($query_string);

while($result = mysql_fetch_array($qid)) {

echo "<tr>\n";

echo "<td>" . $result["Matricula"] . "</td>\n";

echo "</tr>\n";

}

?>

</table>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aconselhava-te uma coisa caso queiras:

passa o IF para baixo

<form method="post" action="pesquisar.php">

      Matricula: <input type="text" name="filtro" />

      <input type="submit" value=" Filtrar " />

  </form>

 

  <table border="1" >

      <tr>

        <th>Matricula</th>

              </tr>

  <?php

  include("global.inc");//ligacao a BD

  $query_string ="select Matricula from viatura"; 

  if(isset($_POST['filtro'])) {

      $query_string .= " where matricula like '%" . $_POST['filtro'] ."%'";

      $qid = mysql_query($query_string);

      while($result = mysql_fetch_array($qid)) {

        echo "<tr>\n";

            echo "<td>" . $result["Matricula"] . "</td>\n";

        echo "</tr>\n";

      }

  }

  ?>

  </table>

Cumps :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

cuidado com os posts directos... proptege a string antes de a usares na query ;)

0

Partilhar esta mensagem


Link 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