1

productnamesMySQLテーブルからすべてを返そうとしています。現時点では、これは列の名のみを返します

public function selectAll () 
{

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

    }
}

ループしてすべての製品名を選択するにはどうすればよいですか?

4

5 に答える 5

3

productname実行できる1つの方法は、列のみを選択してからを使用すること$stmt->fetchAll(PDO::FETCH_ASSOC)です。

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

    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
于 2013-01-07T05:09:24.187 に答える
1

行う:

public function selectAll () {

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    $allCols = array();
    while($row = $stmt->fetch()) {
        $allCols[] = $row['productname'];
    }
    return $allCols;
}
于 2013-01-07T05:03:14.430 に答える
1

問題の原因となった最初の値を直接返しています。各レコードを配列に格納し、その配列を返します。

public function selectAll () 
{

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

}
return $arr;
}
于 2013-01-07T05:03:43.677 に答える
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

于 2013-01-07T05:07:40.740 に答える
-1

私もstmpは初めてですが、これでうまくいくかもしれないと思います

$result = $stmt->get_result();
while ($row = $result->fetch_assoc())
{
// do something with $row
}
于 2013-01-07T05:03:53.330 に答える