Magento offers a powerful built-in DBA layer ( proudly powered by the Zend Framework ) and a set of custom API to perform basic actions in Magento’s way.
Zend_Db_Select is simple to debug a bad smell in your SQL, but with Magento’s APIs?
There is a very simple solution, when we talk about, for example, the collections.
Look at this example:
1 2 3 4
Seems like we’re trying to get a list of ALL categories with MySQL wildcard ( stop just a second: this example is silly, is just to make you understand ) but, printint the $collection, we don’t get a single category.
Ok, it’s time to see why our SQL is failing:
1 2 3
Just to be clear: if you want to run a query conditional in Magento you must use
->addAttributeToFilter('name', array('like' => '$likeValue')).
Note, wildcards are not automatically inserted; so, for example, your
$likeValue might look like
%myLikeValue instead of
getSelect(): it is a very powerful method because it lets you switch between Magento SQL APIs and ZF’s ones.
So after having described your
getCollection() ( magento ) you can call the
getSelect() and add a
where() ( Zend Framework ).