2016-05-15 4 views
0

Я довольно новичок в PHP OOP, и мне нужно сделать небольшое веб-приложение для школы.Показать данные из базы данных PHP OOP

Одна из вещей, которые я пытаюсь сделать правильно - это выбрать данные из базы данных и отобразить их в моем интерфейсе. Я понял, как отображать одну строку, но я хотел отобразить все строки в таблице. Как я могу это сделать?

Моя функция:

public function listJobs(){ 

     $myDb = $this->_controlPanel->getMyDb(); 
     $query = "Select * FROM jobs_offers"; 

     $result = $myDb->performQuery($query); 


      $row = $result->fetch_array(MYSQLI_ASSOC); 
      $this->title=$row['title']; 
      $this->description=$row['description']; 
      $this->category=$row['category']; 
      $this->budget=$row['budget']; 


} 

Мой передний конец:

<?php 
header ('Content_type: text/html; charset=ISO-8859-1'); 

require_once ('utils/Autoloader.php'); 
session_start(); 

if (empty($myControlPanel)) { 

    try { 

    $myControlPanel = new classes_ControlPanel(); 

    $myControlPanel->setMyDb(new classes_DbManager()); 

    $myDbManager = $myControlPanel->getMyDb(); 

    } 


    catch (Exception $e) { 

     echo $e->getMessage(); 
     die(); 
    } 
} 


$log = new classes_UserManager($myControlPanel); 
$select = $log->listJobs(); 

$title = $log->title; 
$description = $log->description; 
$category = $log->category; 
$budget = $log->budget; 

?> 



<body> 
<div class="container-fluid"> 

<h2> 
<h2><?php echo $title; ?> </h2> 
<h2><?php echo $description; ?> </h2> 
<h2><?php echo $category; ?> </h2> 
<h2><?php echo $budget; ?> </h2> 

</div> 
+0

Это вполне нормально использовать время цикла для перебора однорядные выборок. Вы также можете [fetchAll] (http://php.net/manual/en/mysqli-result.fetch-all.php) вместо fetch_array, чтобы получить массив всех строк. – JimL

+0

Можете ли вы описать, как я могу это сделать в мое дело? –

ответ

0

Во-первых, результат будет возвращать массив объектов (PDO). Вы хотели бы вернуть этот массив в свое представление. Или, в вашем случае как свойство объекта, а не одну строку, как вы делали выше.

Далее вы хотите использовать цикл foreach или while в представлении. Если вы используете PDO (объект данных Php), вы можете сделать следующее.

while($job = $result->fetch_assoc()) { 
{ 
?> 

<div class="container-fluid"> 

    <h2> 
    <h2><?= $job->title; ?> </h2> 
    <h2><?= $job->description; ?> </h2> 
    <h2><?= $job->category; ?> </h2> 
    <h2><?= $job->budget; ?> </h2> 

</div> 

<?php 
} 

(Short Метки (<?=$var?>) эквивалентны <?php echo $var?>)

Ссылка: http://www.w3schools.com/php/php_mysql_select.asp

Смежные вопросы