Почему цикл while дает неограниченный результат при доступе к mysql из класса php - PullRequest
0 голосов
/ 28 ноября 2018

Существует класс, как определено ниже

class table {

    public $mysqli;
    public $display;

    public function mysqli() {
         $mysqli = new mysqli('hostname', 'username', 'password', 'database');
         return $mysqli;
    }

    public function __construct() {
         $this->mysqli = $this->mysqli();
    }

    public function display() {

         $sql = "SELECT * FROM table";
         if($data = $this->mysqli->query($sql)) {
               $this->display = $data->fetch_assoc();
         };
    }
}

$table = new table();
$table->display();
while($table->display) {
    $this->display['name']. " " . $this->display['country'];
};

публичной функции $this->display было присвоено значение a $data->fetch_assoc().Косвенно while($table->display = $data->fetch_assoc()) эквивалентно while($data->fetch_assoc().но результат не перебирает список.Вместо этого он отображает только первую строку снова и снова, пока система не выйдет из строя.

Существует ли правило, управляющее классом php, о котором я не знаю, или я пропускаю свои команды?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Попробуйте:

class table {

    public $mysqli;
    public $display;

    public function mysqli() {
         $mysqli = new mysqli('hostname', 'username', 'password', 'database');
         return $mysqli;
    }

    public function __construct() {
         $this->mysqli = $this->mysqli();
    }

    public function display() {

         $sql = "SELECT * FROM table";
         $this->display = $this->mysqli->query($sql);
    }
}

$table = new table();
$table->display();
while($row = $table->display->fetch_assoc()) {
     echo $row['name']. " " . $row['country'];
};
0 голосов
/ 28 ноября 2018

Разве вы не должны сделать свой цикл вроде:

while($row = $table->display) {
    $row['name']. " " . $row['country'];
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...