Busca Brusca...
Engraçado o título.
Assim, fiz uma busca de usuários para o sistema que desenvolvo, mas ela está muito brusca.
Ou seja, da forma que fiz, ela valida se foi buscado diretamente pelo ID do usuário OU pelos "filtros de busca" (nome, endereço e etc.)
Porém, nesse condicional de buscar pelos filtros acabou ficando muito restritivo, isto é, ou a pessoa preenche todos os campos para a quey montar e dar certo, retornando o(s) resultados esperados, ou o sistema gera um erro.
Tentei "fracionar " query montando cada pedacinho, cada cláusula do WHERE se o determinado campo estivesse preenchido. Mas não tive sucesso.
QWuando bolei o sisteminha de busca nem me toquei que, futuramente vão haver mais trocentos registros e que, na hora do desenvolvimento, restringir ao máximo funcionava, mas não funcionaria mais depois de publicado.
Se alguém puder me dizer onde estou errando eu agradeço. Vou colocar o conteúdo do meu ELSE, que estrutura e busca o(s) registro(s) caso não esteja sendo feita uma busca por ID.
PHP
if( [isset](http://br.php.net/isset)( $_POST['name'] ) ? $_POST['name'] : $_POST['name'] = '' );if( [isset](http://br.php.net/isset)( $_POST['birth'] ) ? $_POST['birth'] : $_POST['birth'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['endereco'] ) ? $_POST['endereco'] : $_POST['endereco'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['bairro'] ) ? $_POST['bairro'] : $_POST['bairro'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['cidade'] ) ? $_POST['cidade'] : $_POST['cidade'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['cep'] ) ? $_POST['cep'] : $_POST['cep'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['telefone'] ) ? $_POST['telefone'] : $_POST['telefone'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['RG'] ) ? $_POST['RG'] : $_POST['RG'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['CPF'] ) ? $_POST['CPF'] : $_POST['CPF'] = '' );
if( [isset](http://br.php.net/isset)( $_POST['orderFilter'] ) ? $_POST['orderFilter'] : $_POST['orderFilter'] = 'ID' );
$query = 'SELECT * FROM `pusers` WHERE
`name` LIKE '%' . $_POST['name'] . '%' AND
`birth` = '' . $_POST['birth'] . '' AND
`endereco` LIKE '%' . $_POST['endereco'] . '%' AND
`bairro` LIKE '%' . $_POST['bairro'] . '%' AND
`cidade` LIKE '%' . $_POST['cidade'] . '%' AND
`cep` = '' . $_POST['cep'] . '' AND
`RG` = '' . $_POST['RG'] . '' AND
`CPF` = '' . $_POST['CPF'] . ''
ORDER BY `' . $_POST['orderFilter'] . '` DESC';
$result = mysql_query( $query, $GLOBALS['link'] )
or die( db_error( mysql_errno() ) );
// Recebendo as informações do usuário de acordo com os filtros
if( mysql_num_rows( $result ) > 0 )
{
// Loop pelos registros...
while( $rows = mysql_fetch_array( $result, MYSQL_ASSOC ) )
{
$data[] = $rows;
$GLOBALS['Smarty'] -> assign( 'totalAnnounces',
'Total de Registros: ' . [mysql_num_rows](http://br.php.net/mysql_num_rows)( $result ) );
}
//-----------------------------------------
$GLOBALS['Smarty'] -> assign( 'rows', $data );
$GLOBALS['Smarty'] -> assign( 'settingID', $_POST['userID'] );
//-----------------------------------------
$GLOBALS['Smarty'] -> assign( 'Clock', 'Página gerada em ' . $GLOBALS['Clock'] -> showTime() . ' segundos' );
$GLOBALS['Smarty'] -> display( 'admin/users.view.tpl' );
//-----------------------------------------
P.S.: Como colca código colorido aqui no fórum? Acho que facilitaria para visualizar os códigos. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif
[EDIT] Valeu Luís, agora facilita um pouco as coisas, eu acho
Discussão (1)
Carregando comentários...