1

クエリをチェックし、while ループを使用してデータを抽出する関数があります。このデータを返したいのですが、それでもインクリメントしたいのですが、return が関数を終了させるため、それができなくなることを読みました。インクリメントします。これを回避する方法はありますか?

$this->messages = array();
while($row = $data) {
                $this->messages[$i]['id'] = $row['id'];
                $this->messages[$i]['title'] = $row['title'];
                $this->messages[$i]['message'] = $row['message'];
                $i++;

このループは関数内にあります。ループが完了するまで続行したいのですが、値を返すことができません。これを回避する方法はありますか?

ありがとうございました

編集:

<?php

function Message($username){

            $query = "SELECT * FROM msg WHERE `to` = '".$this->userid."' && `to_viewed` = '0' && `to_deleted` = '0' ORDER BY `created` DESC";   
            $stmt = $this->connection->prepare($query);
            $stmt->execute();

    $data = $stmt->fetch(PDO::FETCH_ASSOC);
    $num_rows = $stmt->fetchColumn();

        if($num_rows) {
            $i=0;
            $this->messages = array();
            while($row = $data) {
// want to return these 3 for each result
                $this->messages[$i]['id'] = $row['id'];
                $this->messages[$i]['title'] = $row['title'];
                $this->messages[$i]['message'] = $row['message'];

                $i++;
            }
        } else {
            return 1; 
        }
    }

?>
4

1 に答える 1