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