Monday 18 August 2014

how to get all reviews and rating with products on frontend in magento


<?php

$con = Mage::getSingleton('core/resource')->getConnection('core_write');
$re=$con->query('SELECT rd.title, rd.detail, rd.nickname, rd.review_id, r.created_at, sum(vt.percent) as precn, r.entity_pk_value FROM review_detail AS rd LEFT JOIN review AS r USING  (review_id ) LEFT JOIN rating_option_vote AS vt USING ( review_id ) WHERE r.status_id = "1" GROUP BY vt.`review_id` order by r.created_at desc
limit 0, 5');

/*'SELECT rd.title, rd.detail, rd.nickname, r.created_at, sum(vt.percent) as precn, r.entity_pk_value FROM review_detail AS rd LEFT JOIN review AS r USING  (review_id ) LEFT JOIN rating_option_vote AS vt USING ( review_id ) WHERE r.status_id = "1" GROUP BY vt.`review_id`
';*/
?>

<div id="review_rates">
<table width="100%">
<tr class="main_review">
<td>
<?php while($rows=$re->fetch())
{
?>
<table class="tbl_repeate">
<tr>
<td rowspan="3">
<?php $productId = $rows['entity_pk_value'];
$product = Mage::getModel('catalog/product')->load($productId);
$imageThumbnailUrl = $product->getThumbnailUrl();
$product_url = $product->getProductUrl();

?>
<a href="<?php echo $product_url;?>"><img src="<?php echo $imageThumbnailUrl;?>"></a>
</td>
<td><h2><?php echo $rows['title']; ?></h2>
</td>
<tr>
<td>
<?php
$res_rate=$con->query("SELECT r.rating_code,rt.percent  FROM `rating` as r left join rating_option_vote as rt using(rating_id)  WHERE 
rt.review_id='".$rows['review_id']."' order by r.rating_code asc ");
 while($rows_rate=$res_rate->fetch())
{


?>
<table>
<tr>
<td>
<?php
echo $rows_rate['rating_code'];?>
</td>
<td>
<div class="ratings">
                    <div class="rating-box">
                <div style="width:<?php echo $rows_rate['percent'];  ?>%" class="rating"></div>
            </div>
        
       
    </div>
    </td>
    </tr>
    </table>
    <?php

}
?>
<table>
<tr>
<td>
Avrage
</td>
<td>
<div class="ratings">
                    <div class="rating-box">
                <div style="width:<?php echo (round($rows['precn']*100/300)); ?>%" class="rating"></div>
            </div>
                
    </div></td>
    </tr>
    </table>
    </td>
</tr>
<tr>
<td>
<strong><?php echo $rows['nickname']; ?></strong> Date <?php echo $rows['created_at']; ?></td>
</tr>
<tr>
<td colspan="2">
<?php echo $rows['detail']; ?>
</td>
</tr>
</table>

<?php

}


?>

</td>
   </tr>
   </table>
   </div>

1 comment:

  1. Hi can you explain how to add pagination on this?

    ReplyDelete