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.
Using 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 |
|
Nothing more.
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 myLikeValue
.
About 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 ).