繁体   English   中英

如何从SELECT查询中获得正确的输出?

[英]How to get the right output from this SELECT query?

我有这样的查询:

SELECT * FROM `purchases` p 
JOIN `purchase_types` pt ON p.purchase_type = pt.node

当我在PHPmyAdmin中运行它时,它返回正确的结果集,如下所示:

node | purchase_type | amount_spent | node | name
--------------------------------------------------
2    | 5             | 8.5000       | 5    | Lunch
3    | 5             | 1.5000       | 5    | Lunch
4    | 6             | 4.6600       | 6    | Dinner

这是我的PHP代码:

$sql = "SELECT * FROM `purchases` p 
        JOIN `purchase_types` pt ON p.purchase_type = pt.node";

$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);

$purchases = array();
while($row = mysql_fetch_assoc($query)) {
    $purchases[] = array(
        'name' => $row['name'],
        'amount_spent' => $row['amount_spent']
    );
}

对于超过$expenses每个返回以下输出:

3    | 5             | 1.5000       | 5    | Lunch
4    | 6             | 4.6600       | 6    | Dinner

第一个“午餐”会发生什么? 如何让PHP输出与直接MySQL查询输出相同?

你叫mysql_fetch_accoc之前while 别。


您还应该意识到将不推荐使用ext/mysql并升级您的代码以使用PDO或mysqli正确参数化查询

尝试使用mysql_fetch_array,

$purchases = array();
while($row = mysql_fetch_array($query)) {
    $purchases[] = $row;
}

如果你想获得数据就行了

foreach($purchases as $key => $value)
{
    $name = $value['name'];
    $amount_spent = $value['amount_spent'];

    echo 'name : '.$name.' , amount spent '.$amount_spent.'<br />';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM