php for magento中的循环查询

时间:2012-02-18 12:34:49

标签: php mysql magento

大家好,我是新手,但从这里得到了很多帮助。感谢所有帮助过的人。 现在我面临着magento电子商务中的一个问题,即对前10名持有者进行循环查询。好吧,我已经建立了一个包含点的单独数据库。

我的数据库是table:magentodatabase_points 现在这里共有3个字体 - 身份证 2. User_id 3.分

现在好了,在这里,我想制作一个前十名成员的循环包含我尝试过的最高分但失败了,所以任何人都可以帮助我。

$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名持有者的循环查询。

先谢谢 抱歉我的英文不好

2 个答案:

答案 0 :(得分:2)

如果您的表名和字段存在,那么您只需在代码下方添加:

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

您应该考虑使用Magento的模型来代替。在MagentoCommerce的网站上有一个来自Alan Storm的优秀教程系列: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);
}

答案 1 :(得分:0)

可能是因为您的字段名称对于user_id更正为“User_id”的大写,并且您在查询中使用小写。 否则你的方法可以使用magento

对于gettting客户,如果User_id从此结果获得的是客户ID,则$ customer_data = Mage :: getModel('customer / customer') - > load(User_Id);会给你客户的所有细节。您可以使用$ customer_data-> getName()方法

从中获取名称