Php 返回列中的所有值

Php 返回列中的所有值,php,mysql,Php,Mysql,我正在尝试从MySQL表返回所有产品名称。目前,它只返回列中的第一个名称 public function selectAll () { $stmt = Database::get()->query('SELECT * FROM retrofootball_products'); while($row = $stmt->fetch()) { return $row['productname']; } } 如何使其循环并选择所有产品

我正在尝试从MySQL表返回所有产品名称。目前,它只返回列中的第一个名称

public function selectAll () 
{

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

    }
}
如何使其循环并选择所有产品名称?

执行以下操作:

public function selectAll () {

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


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

public function selectAll () 
{

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

}
return $arr;
}

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

public function selectAll () 
{

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

}
return $arr;
}

虽然我对stmp也是新手,但我想这可能会奏效

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

虽然我对stmp也是新手,但我想这可能会奏效

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

在使用PDO和fetchAll时,可以避免循环

public function selectAll () 
{

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

在使用PDO和fetchAll时,可以避免循环

public function selectAll () 
{

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

一种方法是只选择productname列,然后使用$stmt->fetchAllPDO::FETCH_ASSOC


一种方法是只选择productname列,然后使用$stmt->fetchAllPDO::FETCH_ASSOC


将*更改为productname。@RomanNewaza您知道*意味着选择正确?不正确。他只需要一列,将*.Change*改为productname是一种不好的做法。@RomanNewaza你知道*的意思是“全选”吗?不行。他只需要一列,使用*.Perfect是一种不好的做法,我如何知道去掉数组标记并只显示我想要显示的行?Perfect,我如何知道去掉数组标记并只显示我想要显示的行?然后我如何删除键以便只显示数据?如果您使用的是PHP 5.3或更高版本,您可以使用:array_walk$array_of_data,function&$a{$a=$a['productname']];};其中$array\u of_data是从selectAll返回的数组。如果我想在不使用数组的情况下执行此操作,只需循环返回每个产品名称的数据,我将如何执行此操作?同样,假设PHP5.3或更高版本,返回数组映射函数$a{return$a['productname'];},$stmt->fetchAllPDO::FETCH\u ASSOC;但老实说,最好使用->fetch循环,然后返回数组,这样仍然会返回一个数组。在一个理想的世界里,它会在自己的行中返回每个标题,而不需要一个数组。我猜这是不可能的。然后我将如何删除这些键,使其只包含数据?如果您使用的是PHP5.3或更高版本,您可以使用:array_walk$array_of_data,function&$a{$a=$a['productname'];};其中$array\u of_data是从selectAll返回的数组。如果我想在不使用数组的情况下执行此操作,只需循环返回每个产品名称的数据,我将如何执行此操作?同样,假设PHP5.3或更高版本,返回数组映射函数$a{return$a['productname'];},$stmt->fetchAllPDO::FETCH\u ASSOC;但老实说,最好使用->fetch循环,然后返回数组,这样仍然会返回一个数组。在一个理想的世界里,它会在自己的行中返回每个标题,而不需要一个数组。我想这是不可能的。