返回列中的所有值

时间:2013-01-07 05:00:23

标签: php mysql

我正在尝试从MySQL表中返回所有productnames。目前,这仅返回列

中的第一个名称
public function selectAll () 
{

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    while($row = $stmt->fetch())
    {
        return $row['productname'];

    }
}

如何让它循环并选择所有产品名称?

5 个答案:

答案 0 :(得分:3)

您只能选择productname列,然后使用$stmt->fetchAll(PDO::FETCH_ASSOC)

public function selectAll () 
{
    $stmt = Database::get()->query('SELECT `productname` FROM retrofootball_products');

    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

答案 1 :(得分:1)

做的:

public function selectAll () {

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    $allCols = array();
    while($row = $stmt->fetch()) {
        $allCols[] = $row['productname'];
    }
    return $allCols;
}

答案 2 :(得分:1)

您正在直接返回导致问题的第一个值。 将每个记录存储在数组中并返回该数组。

public function selectAll () 
{

$stmt = Database::get()->query('SELECT * FROM retrofootball_products');
while($row = $stmt->fetch())
{
    $arr[] = $row['productname'];

}
return $arr;
}

答案 3 :(得分:0)

当你使用PDO并使用fetchAll时,你可以避免循环。

public function selectAll () 
{

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    return $stmt->fetchAll();
}

http://php.net/manual/en/pdostatement.fetchall.php

答案 4 :(得分:-1)

虽然我也是新手,但我想这可能有用

$result = $stmt->get_result();
while ($row = $result->fetch_assoc())
{
// do something with $row
}