[RESOLVIDO] MSG de erR0

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_error( mysql_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:
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_error( mysql_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


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
 
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_error( mysql_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:
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_error( mysql_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

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 ));
    }
 
Back
Topo