这个PHP函数中没有按预期工作的东西

I am trying to pull data from MySQL and this supposed to show complete data but this is showing only one row. This is supposed to show all rows of users. I don’t know what I did wrong:

Here is the code:

function getCashoutRequests($uid, $limit) {
if (!empty( $limit )) {
    $query = mysql_query( '' . 'SELECT * FROM cashouts WHERE uid = ' . $uid . ' ORDER BY id DESC LIMIT ' . $limit );
}
else {
    $query = mysql_query( '' . 'SELECT * FROM cashouts WHERE uid = ' . $uid . ' ORDER BY id DESC' );
}


if (mysql_num_rows( $query )) {

    if ($row = mysql_fetch_object( $query )) {
        $row->id;
        $amount = $row->amount;
        $status = $row->status;
        $client_notes = nl2br( $row->user_notes );
        $admin_notes = nl2br( $row->admin_notes );
        $request_date = $row->request_date;
        $payment_date = $row->payment_date;
        $fee = $row->fee;
        $priority = $hid = $row->priority;
        $method = $row->method;

        if ($payment_date != '0000-00-00 00:00:00') {
            $payment_date = date( 'd M, Y', strtotime( $payment_date ) );
        }

        $request_date = date( 'd M, Y', strtotime( $request_date ) );

        $payHistory []= array( 'id' => $hid, 'cash' => $amount, 'status' => $status, 'method' => $method, 'client_notes' => $client_notes, 'admin_notes' => $admin_notes, 'date' => $request_date, 'payment_date' => $payment_date, 'fee' => $fee, 'priority' => $priority );
    }

    return $payHistory;
}

return false;
}

On this line you have if:

if ($row = mysql_fetch_object( $query )) {

If you use if that would only go to the first value since if simply tests a condition once. Instead try while like this:

while ($row = mysql_fetch_object( $query )) {

As explained in the PHP manual entry for while:

The meaning of a while statement is simple. It tells PHP to execute the nested statement(s) repeatedly, as long as the while expression evaluates to TRUE.