meu problema é o seguinte. meu programa teria que fazer todos tipos de consultas possiveis envolvendo 8 dados.
para mim não encher de if, e me matar fazer combinações, criei uma variacel qualquer chamada $t. função dela é armazenar pedacinhos da consulta que o usuario pedir.
EX:
if ($produto != "")
{
if ($t != "")
{
$t = "$t and cod_produto = '$produto'";
}
else
{
$t = "cod_produto = '$produto'";
}
}
if ($tamanho != "")
{
if ($t != "")
{
$t = "$t and tamanho = '$tamanho'";
}
else
{
$t = "tamanho = '$tamanho'";
}
}
DIGAMOS QUE O USUARIO ESCOLHEU CAMISETA = POLO, TAMANHO = G
$sql = "select * from tb_contrato where $t ORDER BY cod_contrato ASC";
$result = mysql_query($sql);
$linha = mysql_num_rows($result);
se der um echo $sql; vai ficar assim:
$sql = "select * from tb_contrato where cod_produto = $produto and tamanho = $tamanho ORDER BY cod_contrato ASC";
Até ai tudo bem, pudi fazer qualquer combinaçao de consulta.. agora eu quero que o usuario marque em alguns check box, as 4 escolhas. AND. OR, < , > ;
escolhendo AND (ele fara a consulta que nos acabamos de fazer)
escolhendo OR (ele continuara fazendo a consulta and, mas acrescentara um or.)
EX:
if ($and == "on")
{
if ($produto != "")
{
if ($t != "")
{
$t = "$t and cod_produto = '$produto'";
}
else
{
$t = "cod_produto = '$produto'";
}
}
}
-----------------------------------------------
if ($or == "on")
{
if ($produto != "")
{
if ($t != "")
{
$t = "$t or cod_produto = '$produto'";
}
}
}
o sql deveria ficar assim .
$sql = "select * from tb_contrato where cod_produto = $produto or cod_produto = $produto ORDER BY cod_contrato ASC";
me surjiu 2 problemas
1ª terie que usar 1 campo só para produto. e a consulta tem que manter a variavel anterio no 1ª $produto, e a nova no 2ª
para não fica cod_produto = POLO or cod_produto = POLO . mesmo o usuario tendo escolhido outra camiseta antes.
2ª ele só faz a pesquiza no or com o and, se os dois checkbox estiverem marcado. o.O (não sei porque)
por favor , se alguém souber de uma ideia para facilitar essas consultas. agradeço
Pergunta
Montano
boa tarde.
meu problema é o seguinte. meu programa teria que fazer todos tipos de consultas possiveis envolvendo 8 dados.
para mim não encher de if, e me matar fazer combinações, criei uma variacel qualquer chamada $t. função dela é armazenar pedacinhos da consulta que o usuario pedir.
EX:
if ($produto != "")
{
if ($t != "")
{
$t = "$t and cod_produto = '$produto'";
}
else
{
$t = "cod_produto = '$produto'";
}
}
if ($tamanho != "")
{
if ($t != "")
{
$t = "$t and tamanho = '$tamanho'";
}
else
{
$t = "tamanho = '$tamanho'";
}
}
DIGAMOS QUE O USUARIO ESCOLHEU CAMISETA = POLO, TAMANHO = G
$sql = "select * from tb_contrato where $t ORDER BY cod_contrato ASC";
$result = mysql_query($sql);
$linha = mysql_num_rows($result);
se der um echo $sql; vai ficar assim:
$sql = "select * from tb_contrato where cod_produto = $produto and tamanho = $tamanho ORDER BY cod_contrato ASC";
Até ai tudo bem, pudi fazer qualquer combinaçao de consulta.. agora eu quero que o usuario marque em alguns check box, as 4 escolhas. AND. OR, < , > ;
escolhendo AND (ele fara a consulta que nos acabamos de fazer)
escolhendo OR (ele continuara fazendo a consulta and, mas acrescentara um or.)
EX:
if ($and == "on")
{
if ($produto != "")
{
if ($t != "")
{
$t = "$t and cod_produto = '$produto'";
}
else
{
$t = "cod_produto = '$produto'";
}
}
}
-----------------------------------------------
if ($or == "on")
{
if ($produto != "")
{
if ($t != "")
{
$t = "$t or cod_produto = '$produto'";
}
}
}
o sql deveria ficar assim .
$sql = "select * from tb_contrato where cod_produto = $produto or cod_produto = $produto ORDER BY cod_contrato ASC";
me surjiu 2 problemas
1ª terie que usar 1 campo só para produto. e a consulta tem que manter a variavel anterio no 1ª $produto, e a nova no 2ª
para não fica cod_produto = POLO or cod_produto = POLO . mesmo o usuario tendo escolhido outra camiseta antes.
2ª ele só faz a pesquiza no or com o and, se os dois checkbox estiverem marcado. o.O (não sei porque)
por favor , se alguém souber de uma ideia para facilitar essas consultas. agradeço
obrigado
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.