Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ascensao

WHERE

Mensagens Recomendadas

Ascensao

Boas Pessoal

Tenho o seguinte código:

$query = mysql_query("SELECT ".$field." FROM tbl_movie WHERE category_1='".$genre."' ORDER BY ".$order." ".$sort."");

Mas por vezes não é necessário condição na categoria_1, qual o valor predefinido que meto na variável $genre ?

category_1 na base de dados é uma variavel do tipo INT  .


Agradeço conselhos e opiniões:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Não metes:

$query = mysql_query("SELECT ".$field." FROM tbl_movie ORDER BY ".$order." ".$sort."");


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Eu costumo fazer uma variável isolada para a instrução SQL. Isso torna a gestão das consultas à base de dados ligeiramente mais agradável de trabalhar :-)

$sql = "select $field from tbl_movie where 1=1 "; /* espaco dentro das aspas */
if (true) {
    $sql .= "and category_1 = '$genre' "; /* espaco dentro das aspas */
}
$sql .= "order by $order $sort";
$res = mysql_query($sql) or die(mysql_error . ' em ' . $sql);

O "where 1=1" permite que todas as condicoes tenham o mesmo formato, nomeadamente "and whetever = something"


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

@pmg :

tembem tens esta opção:

$sql = "select * from xpto ";
$cond = array(" campo=valor ");
$filtros = " order by x limit y";
if (count($cond))
  $sql = $sql . implode(" and ", $cond);
$sql.= $filtros;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ascensao

Não metes:

$query = mysql_query("SELECT ".$field." FROM tbl_movie ORDER BY ".$order." ".$sort."");

Necessito de meter pois ao longo do site utilizo sempre a mesma função para as query´s.


Agradeço conselhos e opiniões:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ascensao

Eu costumo fazer uma variável isolada para a instrução SQL. Isso torna a gestão das consultas à base de dados ligeiramente mais agradável de trabalhar :-)

$sql = "select $field from tbl_movie where 1=1 "; /* espaco dentro das aspas */
if (true) {
    $sql .= "and category_1 = '$genre' "; /* espaco dentro das aspas */
}
$sql .= "order by $order $sort";
$res = mysql_query($sql) or die(mysql_error . ' em ' . $sql);

O "where 1=1" permite que todas as condicoes tenham o mesmo formato, nomeadamente "and whetever = something"

Já tinha pensado nesta solução, pensava que havia métodos mais simples mas já vi que não. Vou ter que utilizar este método, o que me acrescenta mais uma variante a entrar na função. Mas obrigado a todos na mesma  :D


Agradeço conselhos e opiniões:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.