0

カスタムクエリを作成したい Magento のサイトがあります。私のクエリは問題ありません(phpmyadminで試しました)

このコードをファイル .phtml に入れてみました

<?php
// fetch write database connection that is used in Mage_Core module
$db = Mage::getSingleton('core/resource')->getConnection('core_read');
$result = $db->query("select * from catalog_product_flat_1 WHERE short_description LIKE '%".$description_search."%' AND entity_id != ".$product_id." ;");
//After running  check whether data is available or not
if(!$result) {
  echo 'No data found';
}
else
{
//Here we are fetching the data
 echo('<p>here '.$result->fetchAll(PDO::FETCH_ASSOC).'</p>');
 foreach ($result->fetchAll() as $row)
    {
        echo ('<p><br>Name: </p>');
    }
}

foreach には何も出力されず、fetchAll は空です。しかし、私が作ると:

var_dump($result);

この var_dump には、たとえば次のようなオブジェクトがあります。

object(Varien_Db_Statement_Pdo_Mysql)#631 (9) { ["_fetchMode":protected]=> int(2) ["_stmt":protected]=> object(PDOStatement)#572 (1) { ["queryString"]=> string(130) "select * from catalog_product_flat_1 WHERE short_description LIKE '%Riferimento originale: TN-1700%' AND entity_id != 733536 ;" } ["_adapter":protected]=> object(Varien_Db_Adapter_Pdo_Mysql)#14 (30) { ["_defaultStmtClass":protected]=> string(29) "Varien_Db_Statement_Pdo_Mysql" ["_transactionLevel":protected]=> int(0) ["_connectionFlagsSet":protected]=> bool(true) ["_ddlCache":protected]=> array(1) { [1]=> array(4) { ["eav_attribute"]=> array(17) { ["attribute_id"]=> array(14) { ["SCHEMA_NAME"]=> NULL....

製品を正しく取得するにはどうすればよいですか?

4

1 に答える 1

2

以下のコードがあなたのために働くかもしれません

$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
->addFieldtoFilter('short_description', array('like' =>'%Good Luck%'))
->addFieldtoFilter('entity_id', array('eq' => 404));

そして、次のようなフィールドデータを取得できます

foreach($collection as $row){
echo $row->getName();
}
于 2013-07-08T09:28:39.720 に答える