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

[RESOLVIDO] MSG de erR0

Discussão em 'Web Development' iniciada por iGMBroken, 11 de Junho de 2007. (Respostas: 4; Visualizações: 807)

  1. iGMBroken

    iGMBroken Power Member

    Hey boas ppl ;D

    Bom venho colocar mais uma questão. Tenho um formulário de pesquisa e queria que quando o campo não fosse encontrado nenhum campo ele desse uma mensagem, por exemplo "Não foi encontrado nenhum campo".


    PHP:
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head></head>
    <body>
           <?php
        
    include 'principal.php'
        
    ?>
           <?php    
     
        $ligacao 
    mysql_pconnect"localhost" "root" "" ) or trigger_errormysql_error( ) , E_USER_ERROR );
        
    mysql_select_db"chardware" $ligacao );
           
    ?>
        <?    
        $campo = $_POST['campo'];
        $palavra = $_POST['palavra'];
     
        $sql = "SELECT * FROM hardware WHERE $campo LIKE '%$palavra%'";
     
        $recordset = mysql_query( $sql , $ligacao ) or die( mysql_error());   
        $row_recordset = mysql_fetch_assoc( $recordset );    
        do {              
        echo $row_recordset["$campo"]."<br />";         
     
        } while ( $row_recordset = mysql_fetch_assoc( $recordset )); 
       ?>
        <br />
        <br />
       <?php
       
    include 'footer.php'
          
    ?>
     </body>
     </html>


    fica aki o codigo

    abraços
     
    Última edição: 13 de Junho de 2007
  2. p3dro

    p3dro Power Member


    Quanto te referes a campo, é literalmente 1 campo da tabela ou estás a referir-te a não serem encontrados registos? Se tiver a ver com registos não encontrados podes usar o mysql_num_rows, se for realmente 1 campo da tabela, com esse código dá logo erro no die(mysql_error()), pk a instrução sql deixa de ser válida, visto o $campo não existir

    Tem é em atenção pela maneira como vais aceder à bd, receber uma variável que vai directamente pesquisar numa tabela (e logo 1 campo :)), poderá causar problemas de segurança :p
     
  3. iGMBroken

    iGMBroken Power Member

    sim eu sei ja me avisaram varias vezes, mas vou primeiro construir o codigo e dps tentar implementar medidas de segurança, visto que isto vai ficar dentro da empresa, nao vai haver mt problema.

    podes dar me um exemplo de como utilizo essa funçao ?

    eu procurei no w3shools e no php.net e ambos utilizam algo semelhante a isto:

    PHP:
    <?php
     
    $link 
    mysql_connect("localhost""mysql_user""mysql_password");
    mysql_select_db("database"$link);
     
    $result mysql_query("SELECT * FROM table1"$link);
    $num_rows mysql_num_rows($result);
     
    echo 
    "$num_rows Rows\n";
     
    ?> 
    epah e eu keria que ele kuando fosse utilizar isso mas n fosse dar o $result. eu keria era que desse uma mensagem de erro tipo

    "Não foi encontrado nenhum registo na base de dados"

    assim tipo google.

    eu tentei fazer e deu erro tipo:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programas\easyphp1-8\www\workmedia\prc2.php on line 24

    PHP:
           <?php    
     
        $ligacao 
    mysql_pconnect"localhost" "root" "" ) or trigger_errormysql_error( ) , E_USER_ERROR );
        
    mysql_select_db"chardware" $ligacao );
           
    ?>
        <?    
        $campo = $_POST['campo'];
        $palavra = $_POST['palavra'];
     
        $sql = "SELECT * FROM hardware WHERE $campo LIKE '%$palavra%'";
     
        $recordset = mysql_query( $sql , $ligacao ) or die( mysql_error());   
        $row_recordset = mysql_fetch_assoc( $recordset );    
        do {              
        echo $row_recordset["$campo"]."<br />";   
              echo mysql_num_rows("teste");
     
        } while ( $row_recordset = mysql_fetch_assoc( $recordset )); 
       ?>
    fico a espera de resposta, abraços
     
    Última edição: 11 de Junho de 2007
  4. p3dro

    p3dro Power Member

    Description
    int mysql_num_rows ( resource $result )

    o mysql_num_rows recebe um resource e não uma string como lhe estás a enviar, no teu caso será -> mysql_num_rows($recordset);

    no teu código, convém tirares o mysql_num_rows de dentro do do...while, senão em cada iteração do teu ciclo vai imprimir sempre o mesmo valor.

    uma possivel maneira seria:

    PHP:
        $recordset mysql_query$sql $ligacao ) or die( mysql_error()); 
        if(
    mysql_num_rows($recordset)==0){
          echo 
    "Não foi encontrado nenhum registo na base de dados";
        }
        else{
          
    $row_recordset mysql_fetch_assoc$recordset );    
          do {              
            echo 
    $row_recordset["$campo"]."<br />";   
          } while ( 
    $row_recordset mysql_fetch_assoc$recordset ));
        }
     
  5. iGMBroken

    iGMBroken Power Member

    eu diria mesmo brilhante!... :D

    ja funciona mt obrigado ;D
     

Partilhar esta Página