Muito legal essa classe do active record.. numa empresa que trabalhei, nós
usamos muito queries com ().. essa solução proposta pelo vinicius é
funcional mas não acho correta.

Fica a dica: criamos um método que adicionava os parênteses, para quem
escreve e entende o código, fica muito melhor:

$this->db->from("usuario");

*$this->db->bracket();* // (
$this->db->where("teste", "ok");
$this->db->or_where("tipo", "'1'");
*$this->db->bracket();* // )

Abraço
-- 

Atenciosamente,

Guilherme
--------------------------------------------------
GUILHERME SILVEIRA DA SILVA
[email protected]
+55 48 9617 3530
http://www.ssilveira.com.br
http://blog.gsilveira.com
--------------------------------------------------



Em 21 de maio de 2010 08:25, Cliff Oliveira <[email protected]>escreveu:

> muito bom cara
> apesar de poder não ser o ideal
> é bem melhor do que o sistema que eu uso de escrever a query inteira
> ainda mais por que a maioria delas é dinamica , ou seja, tem uma monte de
> if's
>
>
>
> Em 21 de maio de 2010 08:18, Vinicius Cruz <[email protected]> escreveu:
>
>  Cara, tive esse problema na versão anterior, mas acho que não foi
>> corrigido esse problema. Eu resolvo mais ou menos assim (não sei se é a
>> melhor solução):
>>
>> $this->db->from("usuario");
>> $this->db->where("(teste", "ok");
>> $this->db->or_where("tipo", "'1')", FALSE); //terceiro parâmetro é para
>> remover o escape do CI
>> exit($this->db->_compile_select()); //exibe query
>>
>> Gera: SELECT * FROM (`nv_usuario`) WHERE (teste = 'ok' OR tipo ='1')
>>
>> Att,
>> Vinicius Cruz
>> http://twitter.com/vinaocruz
>> http://www.viniciuscruz.com/
>>
>>
>> Em 21 de maio de 2010 08:03, Cliff Oliveira 
>> <[email protected]>escreveu:
>>
>> isso mesmo Vinicius,
>>> grato
>>> mas me diga uma coisa
>>> quando uso esse tipo de declaração numa query
>>> na maioria das vezes temos que coloca-la dentro de parenteses, no sentido
>>> de evitar ambiguidade em relação a outras determinações da query
>>>
>>> o CI já faz isso ?
>>>
>>>
>>>
>>> 2010/5/21 Vinicius Cruz <[email protected]>
>>>
>>> Seria isso?
>>>>
>>>> $this->db->where('name !=', $name);
>>>> $this->db->or_where('id >', $id);
>>>>
>>>> //Gera: WHERE name != 'Joe' OR id > 50
>>>>
>>>> http://codeigniter.com/user_guide/database/active_record.html
>>>>
>>>> Att,
>>>> Vinicius Cruz
>>>> http://twitter.com/vinaocruz
>>>> http://www.viniciuscruz.com/
>>>>
>>>>
>>>> 2010/5/21 Cliff Oliveira <[email protected]>
>>>>
>>>>>  tem como usar o OR dentro do Active Record Class ?
>>>>> normalmente quando preciso usa-lo gero uma variavel $sql com a query
>>>>> e aplico no
>>>>> $this->db->query($sql);
>>>>>
>>>>> gostaria de usar de forma mais efetiva o Active Record Class,
>>>>> mas não achei ainda como nos casos de usar um where com 'OR'
>>>>>
>>>>> grato
>>>>>
>>>>> Cliff Oliveira
>>>>> www.tribodeideias.com.br
>>>>>
>>>>> _______________________________________________
>>>>> Lista mailing list
>>>>> [email protected]
>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Lista mailing list
>>>> [email protected]
>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>
>>>>
>>>
>>>
>>> --
>>> Cliff Oliveira
>>> www.tribodeideias.com.br
>>>
>>> _______________________________________________
>>> Lista mailing list
>>> [email protected]
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>>
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>
>
> --
> Cliff Oliveira
> www.tribodeideias.com.br
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a