2012-02-18 236 views
0

大家好,我是新手,但从这里得到了很多帮助。感谢所有帮助过的人。 现在,我正在面对magento电子商务中的一个问题,以制作10位积分持有者的循环查询。那么我做了一个单独的数据库,其中包含的要点。php for magento循环查询

我的数据库是表:magentodatabase_points 现在这里共有3个colums - 1. ID 2. USER_ID 3点

现在好了,在这里我想作前10名成员组成的环含有我尝试过的最高点但失败了,所以任何人都可以帮助我。

$resource = Mage::getSingleton('core/resource'); 

$readConnection = $resource->getConnection('core_read'); 

$table = $resource->getTableName('database_points'); 
$query = 'SELECT user_id FROM ' . $table . ' ORDER BY points DESC LIMIT 10'; 
$results = $readConnection->fetchAll($query); 

不错,但之后,我试图用PHP for循环但那不是配套的Magento。那么任何人都可以知道什么是magento的循环代码。

那么,一个更多的帮助将是伟大的我如何从使用user_id的顶部结果得到magento客户名称,因为我只会得到结果而不是名称。

反正那不是那么重要,因为我希望我能自己解决它。

因此,如果任何人都可以帮助我进行前10名持点人的循环查询。

感谢advace 和对不起我的英文不好

+0

您的代码看起来像它应该工作。 'fetchAll()'返回一个数组,所以这与Magento无关,而与PHP无关。它如何不被支持?你是否遇到异常?如果是这样,那是什么? – Vinai 2012-02-18 15:57:13

回答

0

可能是因为您的字段名称已为大写的U user_ID的correctd“USER_ID”和你在你的查询中使用小写。 否则你的方法可以与magento一起使用

获取客户,如果User_id从这个结果得到的是客户id,那么$ customer_data = Mage :: getModel('customer/customer') - > load(User_Id) ;会给你所有的客户细节。你可以从这个使用$ customer_data-如果你的表名和字段存在,那么你可以只添加这下面的代码获取名称> getName()方法

+0

以及我已经卖了我的问题,非常感谢您的帮助。我现在得到用户名,我正在尝试向用户添加照片上传 – 2012-02-19 05:40:59

2

foreach ($results as $result) { 
     $user_id = $result['user_id']; 
     echo $user_id; // or do whatever you wanted to with the variable 
} 

您应该考虑使用Magento的模型来代之以做。有来自艾伦风暴的优秀教程系列上MagentoCommerce网站:http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics

为客户的名字,你可以在你的循环试试这个:

foreach ($results as $result) { 
     $user_id = $result['user_id']; 

     $customer = Mage::getModel('customer/customer')->load($user_id); 
     print_r($customer); 
}