0

MySQL テーブルのすべての行を返そうとしています。私は次の機能を持っています:

function listTickets() {
    global $con;
    $result = mysqli_query($con, "SELECT * FROM tickets");
    while($row = mysqli_fetch_array($result)) {
        return array($row['subject'], $row['category'], $row['username'], $row['last'], $row['id', $row['status']);
    }
    mysqli_close($con);
}

ただし、print_r(listTickets())すべての行を返すわけではなく、最初の行のみを返します。すべての行を返すようにするにはどうすればよいですか? 関数などを使わずにそれを行う方法は知っていますが、関数でそれを行う方法を理解したいと思います。ありがとう!

4

4 に答える 4

0

関数内で使用するreturnと、関数は終了し、その後の値returnが返されます。

したがって、データベースの行をどこかに保存し、最後にすべての保存された行を返す必要があります。

例えば:

function listTickets()
{
    global $con;
    $result = mysqli_query($con, "SELECT * FROM tickets");

    $stack = array(); // <- the temp array
    while($row = mysqli_fetch_array($result))
    {
        // push the db result to the stack
        array_push($stack, $row);
    }
    mysqli_close($con);

    return $stack;
}
于 2013-06-25T22:20:52.757 に答える
0

returnステートメントに達すると、関数は完了します。行を何らかのコレクションに集めて、行のコレクションを返す必要があります。

お役に立てれば

于 2013-06-25T22:21:45.867 に答える