OH MAN! I see exactly what I was missing, I wasn't defining each condition within the OR array as an array! Thank you for pointing it out. I must have typed and re-typed those lines so many times that I just overlooked it...
That settled it, thanks a ton for the help! On Nov 5, 4:27 pm, teknoid <[EMAIL PROTECTED]> wrote: > How can you tell me you looked at the manual, when the example is > right there in complex find > conditions?http://book.cakephp.org/view/74/Complex-Find-Conditions > > (I know 'cause I remember adding it :)) > > $this->Post->find('all', array('conditions'=>array( > 'OR'=>array(array('Post.title LIKE'=>'this'), > array('Post.title LIKE'=>'that') > )))); > > On Nov 5, 3:54 pm, Nick <[EMAIL PROTECTED]> wrote: > > > I've been staring at the manual all day... maybe I am missing > > something and if so, my bad. > > > If I build an or statement without the foreach loop, I would do it as > > follows: > > > $conditions = array( > > 'conditions'=> array( > > 'OR' => array( > > 'Question.content > > LIKE' => "this", > > 'Question.content > > LIKE' => "that > > ) > > ) > > ); > > > This is the problem, the second Question.content will overwrite the > > first. Is there any way to build an OR statement where you can look > > for multiple variables within the same database field? > > > Either way, I think I've accomplished what I set out to by doing the > > following and simply building a regex on the fly, I'd LOVE to know if > > there is a simpler way to do this as I doubt this is the easiest way: > > > $i = 1; > > $regString = "^"; > > $term = $this->data['Question']['searchTerm']; > > $splitTerms = explode(" ",$term); > > foreach($splitTerms as $splitTerm): > > if (count($splitTerms) != $i){ > > $regString = > > $regString.$splitTerm."{1,}|^"; > > } else { > > $regString = > > $regString.$splitTerm."{1,}"; > > } > > $i++; > > endforeach; > > $conditions = array('conditions'=> > > array('Question.content REGEXP' > > => "$regString")); > > > > $this->set('questions',$this->Question->find('all',$conditions)); > > > On Nov 5, 3:28 pm, teknoid <[EMAIL PROTECTED]> wrote: > > > > Nothing to do with cake. Your usage is incorrect. > > > Please review how to correctly build an 'OR' condition in the manual, > > > there are multiple examples. > > > > On Nov 5, 2:45 pm, Nick <[EMAIL PROTECTED]> wrote: > > > > > Yes, thats my biggest issue, I don't know if there is a way within > > > > Cake to define multiple array values for 'Question.content LIKE' > > > > > I've tried building it like this, however the SQL query built off of > > > > this array isn't correct: > > > > > $term = $this->data['Question']['searchTerm']; > > > > $splitTerms = explode(" ",$term); > > > > foreach($splitTerms as $splitTerm): > > > > $conditions['conditions']['OR'] > > > > ['Question.content LIKE'][$i]= ("% > > > > $splitTerm%"); > > > > $i++; > > > > endforeach; > > > > $this->set('questions',$this->Question->find('all',$conditions)); > > > > > On Nov 5, 2:38 pm, teknoid <[EMAIL PROTECTED]> wrote: > > > > > > Seems like you are overriding your condition each time... > > > > > > On Nov 5, 1:49 pm, Nick <[EMAIL PROTECTED]> wrote: > > > > > > > I'm hoping someone can help. I'm fairly new to CakePHP but am > > > > > > thoroughly enjoying coding with it. > > > > > > > Basically I've got a field within a table that contains my content. > > > > > > I'm trying to grab the search terms from a single input, explode > > > > > > them > > > > > > and search the content section for each term individually. > > > > > > > I'm doing something along these lines: > > > > > > > $term = $this->data['Question']['searchTerm']; > > > > > > $splitTerms = explode(" ",$term); > > > > > > foreach($splitTerms as $splitTerm): > > > > > > > > > > > > $conditions['conditions']['OR']['Question.content LIKE'] = array("% > > > > > > $splitTerm%"); > > > > > > endforeach; > > > > > > $this->set('questions',$this->Question->find('all',$conditions)); > > > > > > > My dilemma is basically in setting the conditions... because > > > > > > 'Question.content LIKE' can only contain one value, I can't build an > > > > > > array within my foreach loop that I can then pass to the find method > > > > > > to build a full SQL query. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
