Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaeloliveira83

[Resolvido] Como verificar campo se existe antes de jogar na quer

Recommended Posts

Tenho duas páginas:

 

/protudo/index.php

protutos.php

 

Ao listar os produtos em produtos.php clico em um na lista e ele manda para o diretorio /produto/index.php o nome que eu cliquei.

 

No index.php da pasta protudo logo no inicio tem:

 

<?php
// Conectando, escolhendo o banco de dados
$link = mysql_connect("localhost", "root", "") 
   or die('Nao foi possível conectar: ' . mysql_error());
//echo 'Conexăo bem sucedida';
mysql_select_db("banco") or die('Nao foi possível selecionar o banco da dados');

$nome = $_GET["Nome"];

// Executando a consulta SQL

$query = "SELECT * FROM produtos WHERE Nome = '$nome'"; 
$result = mysql_query($query) or die('A consulta falhou!: ' . mysql_error());

?>

 

O problema que eu gostaria de verificar antes se o $nome existe antes de jogar na query,caso contrário exiba uma página de erro, mas nao consegui fazer isso.

 

 

$query = "SELECT * FROM produtos WHERE Nome = '$nome'";

 

A query string fica assim:

 

index.php?Nome=Produto

 

Ou seja mesmo se não existir: index.php?Nome=Blablabla ele vai tentar buscar no banco

 

$query = "SELECT * FROM produtos WHERE Nome = 'Blablabla'";

 

já que o $nome vai receber isso se eu digitar na URL

 

 

e gostaria qe exibisse outra página ou um alerta "Produto não encontrado"

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
// Conectando, escolhendo o banco de dados
$link = mysql_connect( 'localhost' , 'root' , '' )
   or die( 'Nao foi possível conectar: ' . mysql_error() );
//echo 'Conexăo bem sucedida';
mysql_select_db( 'banco' , $link ) or die('Nao foi possível selecionar o banco da dados');

//verifica e higieniza dado provido pelo GET
$name = ( array_key_exists( 'Nome' , $_GET ) ) ? filter_var( $_GET[ 'Nome' ] , FILTER_SANITIZE_STRING ) : NULL;

// Executando a consulta SQL
if ( !is_null( $name ) ):

$querySql = sprintf('
	SELECT *, COUNT(*) as `countEntries`
	FROM `produtos`
	WHERE `Nome` = \'%s\'
	' , $name);

$queryResource = mysql_query( $querySql , $link )
	or die('A consulta falhou!: ' . mysql_error());
$row = mysql_fetch_assoc( $queryResource  );

echo '<br /><pre>'; var_dump( $row ); echo '</pre><br /><br />';

if ( !( (int)$row[ 'countEntries' ] > 0) )://se quantidade de registros NÃO for maior que ZERO
	echo 'Registro não encontrado.';
endif;

endif;

mysql_close( $link );//fecha a conexão
?>

 

Função útil também: mysql_num_rows()

Lembre-se: O manual é seu amigo.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

É graças a função mysql_num_rows()

 

Consegui colocar uns ifs e elses para se existir mais de um produto ele exiba com while, se for igual a 1 exiba somente aquele produto ou se nao encontrar for igual a 0 ele mostre: Registro não encontrado!

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.