View Full Version : [RESOLVIDO] MSG de erR0


iGMBroken
11-06-2007, 10:33
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".




<!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

p3dro
11-06-2007, 14:12
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".




<!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 (http://pt2.php.net/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

iGMBroken
11-06-2007, 14:28
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

$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

$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

p3dro
11-06-2007, 18:33
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

$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

$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:


$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 ));
}

iGMBroken
12-06-2007, 11:52
eu diria mesmo brilhante!... :D

ja funciona mt obrigado ;D