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

while + php

Discussão em 'Web Development' iniciada por RicAlmeida, 14 de Maio de 2008. (Respostas: 8; Visualizações: 745)

  1. RicAlmeida

    RicAlmeida Power Member

    boas,

    eu sei que em vba posso utilizar

    while not registo.eof
    ....


    mas em php da para fazer a mesma coisa que o eof

    entendem?
     
  2. fil79

    fil79 Power Member

  3. RicAlmeida

    RicAlmeida Power Member

    la so tem exemplos para arquivos .txt , isso da para fazer com base de dados tambem
     
  4. shello

    shello Moderador
    Staff Member

    Tens a função feof para ficheiros.

    Se pretendes interacção com bases de dados, o PHP terá formas mais usáveis de lidar com isso.
     
  5. MPalhas

    MPalhas Power Member

    para base de dados, a query é executada com mysql_query, e normalmente carregada par auma variavel, depois podes fazer de duas maneiras, dependendo da função que costumas usar.

    se usas mysql_result para apresentar os resultados, fazes um ciclo:
    Código:
    for ($x=0; $x<mysql_num_rows($resultado); $x++) ...
    se usas o mysql_fetch_array ainda é mais simples:
    Código:
    while ($row= mysql_fetch_array($resultado)) ...
    nesta segunda hipotese, a cada iteração, um registo do resultado é carregada para a variavel $row. quando for a próxima iteração já vai passar o registo seguinte, sem precisares de incrementar nada. quando já não houver mais registos o $row recebe null por isso para o ciclo
     
  6. RicAlmeida

    RicAlmeida Power Member

    obrigado pelas respostas
     
  7. RicAlmeida

    RicAlmeida Power Member

    Código:
    function ver_produtos() { 
        liga_bd();
        // a pesquiza pretendida
        $pes_produto="select produto.* from produto, tipo, sub_tipo";
        //efectuar a pesquisa na base de dados : login
        $resultado=mysql_query($pes_produto);
        
        // aqui vamos obter o numero de resutados obtidos (linhas ... )
        $num=mysql_num_rows($resultado); 
     
         echo $num;
        // se tivermos obtido resultados vamos fazer a verificao da pass, e efectuar as operacoes que pretendemos
         if( $num<1 ){
            echo"Ainda Não existe produtos na Base de Dados";
        } else { ?>
        <hr>
        <table border="1">
            <tr>
                <td><b>Marca</b></td><td><b>Tipo</b></td><td><b>Sub-Tipo</b></td><td><b>Cor</b></td><td><b>Fornecimento</b></td><td><b>Normas</b></td><td><b>Composição Quimica</b></td><td> <b>Caracteristicas Mecanicas</b></td>
            <tr>
    <?
        while ($row= mysql_fetch_array($resultado))  {
            echo "<tr>";
            echo "<td>";
            echo mysql_result($resultado,$row,'produto.marca_pro');
            echo "</td><td>";
            echo mysql_result($resultado,$row,'produto.cod_tipo');
            echo "</td><td>";
            echo mysql_result($resultado,$row,'produto.cod_sub_tipo');
            echo "</td><td>";
            echo mysql_result($resultado,$row,'produto.cor');
            echo "</td><td>";
            echo mysql_result($resultado,$row,'produto.estado');
            echo "</td><td><a href=index.php?r=1&n=";
            echo mysql_result($resultado,$row,'produto.cod_pro');
            echo "><img src=imagens/seta1.gif width=22 height=24 /></a></td><td><a href=index.php?r=1&k=";
            echo mysql_result($resultado,$row,'produto.cod_pro');
            echo "><img src=imagens/seta2.gif width=22 height=24 /></a></td><td><a href=index.php?r=1&f=";
            echo mysql_result($resultado,$row,'produto.cod_pro');
            echo "><img src=imagens/seta3.gif width=22 height=24 /></a></td></tr>";}
            }
    
     } 
    tenho esse codigo so que agora ele apresenta sempre o mesmo registo e 84 vezes sendo que a tabela so tem 4 registo
     
    Última edição pelo moderador: 17 de Maio de 2008
  8. MPalhas

    MPalhas Power Member

    não deves ter percebido bem o que eu disse, pois estás a misturar duas funções diferentes. ou usas mysql_result, ou mysql_fetch_array, nunca as duas ao mesmo tempo
    vai a www.php.net e procura a documentação dessas duas funções para perceberes melhor

    os 80 registos a mais devem ser por causa da query que está mal:

    "select produto.* from produto, tipo, sub_tipo"

    estás a ir buscar todos os dados de uma tabela, mas incluis outras duas tabelas que não usas. por cada registo correspondente nessas tabelas, vai-te aparecer um registo repetido. quando usas mais do que uma tabela deves sempre por as devidas relações entre elas
     
  9. RicAlmeida

    RicAlmeida Power Member

    ja consegui ver o que tinha mal
    devia ter utilizado $row['marca_pro'];

    agora ja me esta a dar certo
    e mais uma vez obrigado pela ajuda
     

Partilhar esta Página