Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odczyt metody na zewnątrz
Forum PHP.pl > Forum > Przedszkole
Panicz74
Witam,

Próbuje się zmagać z OOP i stanąłem przed taki problemem z paginatorem. Gdy robię to strukturalnie wszystko działa. Chciałbym teraz przerzucić kod do metody w klasie na zewnątrz i odczytać ją w pliku finalnym. Ostatecznie dostaję komunikaty:
Notice: Undefined variable: articles in C:\xampp\htdocs\nauka\ooplogin\list.php on line 59
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\nauka\ooplogin\list.php on line 59
Notice: Undefined variable: pages in C:\xampp\htdocs\nauka\ooplogin\list.php on line 71

oraz zero wyników. Co zrobiłem źle?
list.php:
  1. <?php
  2. require_once "functions.php";
  3.  
  4. $user = new LoginRegistration();
  5.  
  6. if(!$user->getSession())
  7. {
  8. header('Location: login.php');
  9. exit();
  10. }
  11. ?>
  12. <div class="content">
  13. <p class="userlist">
  14. All user from list
  15. </p>
  16. <table class ="tbl_one">
  17. <tr>
  18. <th>Serial</th>
  19. <th>Name</th>
  20. </tr>
  21. <?php
  22. $user->getList();
  23. foreach($articles as $article):
  24. ?>
  25. <tr>
  26. <td><?php echo $article['id']; ?></td>
  27. <td><?php echo $article['username']; ?></td>
  28. <?php endforeach; ?>
  29.  
  30.  
  31. </tr>
  32.  
  33. </table>
  34. <div class="paginator">
  35. <?php for($x = 1; $x <= $pages; $x++): ?>
  36. <a href="?page=<?php echo $x; ?>"><?php echo $x; ?></a>
  37. <?php endfor; ?>
  38. </div>
  39.  
  40.  
  41.  
  42. </div>


funkcja z functions.php:
  1. public function getList()
  2. {
  3. global $pdo;
  4. $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
  5.  
  6. $start = ($page > 1) ? ($page * 3) - 3 : 0;
  7.  
  8. $articles = $pdo->prepare("SELECT SQL_CALC_FOUND_ROWS id, username FROM users LIMIT {$start}, 3");
  9. $articles->execute();
  10.  
  11. $articles = $articles->fetchAll(PDO::FETCH_ASSOC);
  12.  
  13. $total = $pdo->query("SELECT FOUND_ROWS() as total")->fetch()['total'];
  14. $pages = ceil($total/3);
  15. }
rad11
Komunikat masz jasny wystarczy pomyśleć :-) masz zmienną articles ale nigdzie nie widzę abyś ja deklarowal a następnie przypisywal. Jak chcesz się dobrać do tej co jest w getList to albo użyj obiektu czyli this->articles = articles->fetchAll a potem zamiast articles to this->articles w pętli lub zwróć sobie tablice w tej funkcji gdzie będziesz miał klucze total, pages i articles
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.