2012-02-18 166 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); 
}