Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
A questão e o seguinte preciso fazer uma consulta no Mysql utilizando
WHERE codigo_cliente='$cliente'
mas caso a variável $cliente esteja vazia retornar todos os clientes.
Não encontrei uma maneira óbvia de fazer isso. Desde já agradeço!
>
if( !empty( $cliente ) ){
$sql = "SELECT * FROM `tabela` WHERE `codigo_cliente` = '$cliente'";$sql = "SELECT * FROM `tabela`";
}
bem pensado mas não é só uma condição
tem regiao,cliente,boletos_pagos,boletos_abertos
Acho que a lógica não muda... você pode ir testando e incrementando itens na consulta daí...
Usa o principio do sql_injection.
ex.:
$cliente = '';
$pesquisa = $cliente==NULL ? $pesquisa = "' OR '1'='1" : $pesquisa = $cliente;
mysql_query(SELECT * FROM tabela WHERE codigo_cliente='{$pesquisa}');>
Usa o principio do sql_injection.
ex.:
$cliente = '';
$pesquisa = $cliente==NULL ? $pesquisa = "' OR '1'='1" : $pesquisa = $cliente;
mysql_query(SELECT * FROM tabela WHERE codigo_cliente='{$pesquisa}');
é funciona
Vou analizar uma por uma.
>
Nem tudo que funciona é correto, você vai criar seu código baseado em gambiarra e preso a SQL.
veja um exemplo correto de testar vários campos sem saber se estão empty e se estiver não criar uma query;
$CreateArray = array();
$CreateArray[ 'boletos_abertos' ] = 'teste';
$CreateArray[ 'boletos_pagos' ] = 'teste2';
$CreateArray[ 'regiao' ] = '' ;
$CreateWhereClause = array();
foreach( $CreateArray as $field => $value ){
$CreateWhereClause[ $value ] = ( ! empty( $value ) ? "`$field` = '$value'" : '' );
}
unset( $CreateWhereClause[ '' ] );
$ConstructQuery = implode( ' OR ', $CreateWhereClause );
$ConstructQuery = empty( $ConstructQuery ) ? '1' : $ConstructQuery;
$sql = "SELECT * FROM `tabela` WHERE {$ConstructQuery}";
Obrigado Wercks Oliveira e a todos, solução perfeita!
if( !empty( $cliente ) ){
}else{