1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Pesquisar em Php

Discussão em 'Web Development' iniciada por xpto1987, 10 de Abril de 2008. (Respostas: 8; Visualizações: 2126)

  1. 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 Xpto1987
     
  2. fil79

    fil79 Power Member

    com javascript é impossivel...tens de usar uma linguagem de servidor, por exemplo php que por sua vez faz uma busca à base de dados usando sql...de qualquer modo penso que esse projecto ficaria melhor se em vez de usares uma textbox usasses antes uma combox que listasse todas as marcas de carros existentes na tabela marcas...
     
  3. hostmake

    hostmake Power Member

    Uma combobox?

    Voçês já trabalharam com mais de 1500 resultados? Era giro era :P

    xpto1987, se usas PHP e MYSQL não precisas de mais nada!

    Exemplo de listagem

    PHP:
    <?php
    echo "<table>";
    $sql = (teu codigo sql);
    $result mysql_query($sql);
    while (
    $dados mysql_fetch_assoc($result)) {
    ?>

    <tr><td>Nome da viatura</td></tr>
    <tr><td><?=$dados['nome_viatura'];?></td></tr>

    <?php
    }
    echo 
    "</table>";
    ?>
     
  4. fil79

    fil79 Power Member

    temos de aplicar cada solução a cada caso especifico.. estamos a falar de marcas de carros, onde não deverá haver mais do que algumas dezenas de resultados portanto parece-me a melhor solução além do mais o utilizador fica sempre a saber quais as marcas que existem..e com ajax pode-se pensar numa solução para se ir automaticamente preenchendo outras combo com o modelo , portas, etc...
     
  5. hostmake obrigado, mas eu isso ja sabia +-...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 das viaturas da marca escolhida
     
  6. hostmake

    hostmake Power Member

    ok.. ex:

    PHP:
    <select name="id_para_ir_buscar_novo_campo" onChange="this.form.submit();"><option...></select>
    <?php
    if (isset($_POST['id_para_ir_buscar_novo_campo'])) {
    $id $_POST['id_para_ir_buscar_novo_campo'];
    ?>
    <select name="os_campos_do_id" onChange="this.form.submit();">
    <option>Marca X</option>
    <option>Marca Y</option>
    </select>
    <?php
    }
    ?>
     
  7. candycane

    candycane Power Member

    xpto1987 para que o resultado apareça na mesma página no action do teu form podes ter nada, ou seja action="" ou mais eficaz: action="<?php echo $_SERVER['PHP_SELF']; ?>" ->isto faz com que se involque a mesma página depois da pesquisa.

    Agora...
    digamos que o nome ou id da tua textfield seja marcas e que o method do teus action seja post(action="post"), vais buscar o conteúdo dessa textfield com a super global $_POST.
    Vamos supor tb que tens um tabela na base de dados com o nome viaturas e que um dos atributos dessa tabela seja marcas

    O codigo deve ficar +- assim:

    PHP:
     
    $marcas 
    $_POST['marcas'];

    $sql mysql_query("SELECT * FROM viaturas WHERE marcas LIKE '%$marcas%' "$tua_conexao_BD);

    if((!empty(
    $marcas)) && (mysql_num_rows($sql) > 0)) {

        while(
    $registos mysql_fecth_assoc($sql)){
            echo 
    $registos['marcas'];

        }
    }else{
        echo 
    "Procura sem resultados.";
    }


    Basta formatares melhor a forma com vais mostra o resultado, numa tabela, com CSS ou... LOL agora vais a tua imaginação :)

    Espero ter ajudado...
     
  8. Obrigado candycane... vou testar e depois digo alguma coisa
     
  9. Boas ja consegui resolver o problema...Obrigado pela ajuda
     

Partilhar esta Página