Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Do wyświetlenia wszystkich danych o konkretnym administratorze, potrzebne są klasy class.admin.php, class.adminfactory.php oraz plik dataadmin.php odpowiedzialny na wyświetlenie informacji na stronie. Część kodu klasy AdminFactory prezentuje Listing 1.

Listing 1. Fragment klasy AdminFactory – class.adminfactory.php

...
public static function getDataAdmin($adminID) {
$sql = "SELECT * FROM admin WHERE id_admin = '".$adminID."'";
$result = mysqli_query(DataManager::_getConnection(), $sql);

if (! ($result && mysqli_num_rows($result))) {
die ("Błąd odczytu danych dla Administratora $adminID");
}

return mysqli_fetch_assoc($result);
}
...

 

Metoda getDataAdmin widoczna na Listingu 1 odpowiada za wykonanie zapytania SELECT dotyczącego tabeli admin i ma za zadanie wyświetlić wszystkie informacje o administratorze podanego identyfikatora. Wynik metody getDataAdmin (Listing 2) zapisuje się w nowo utworzonej zmiennej $dataadmin. Metody dostępowe umożliwiają przypisane nowych wartości dzięki odwołaniu się do nazwy pól w bazie danych.

 

Listing 2. Fragment klasy Admin – class.admin.php

...
private $_id;
private $_userName;
private $_name;
private $_surname;
private $_email;
private $_founded;

public function dataAdmin() {
// Pobiera wszystkie dane dla administratora.
$dataadmin = AdminFactory::getDataAdmin($this->getId());

$this->setUsername(stripslashes($dataadmin['nazwa']));
$this->setName(stripslashes($dataadmin['imie']));
$this->setSurname(stripslashes($dataadmin['nazwisko']));
$this->setEmail(stripslashes($dataadmin['email']));
$this->setFounded(stripslashes($dataadmin['data_utworzenia']));
}

public function setId($id) {
$this->_id = $id;
}
public function getId() {
return $this->_id;
}
public function setUsername($userName) {
$this->_userName = $userName;
}
public function getUsername() {
return $this->_userName;
}
public function setName($name) {
$this->_name = $name;
}
public function getName() {
return $this->_name;
}
public function setSurname($surname) {
$this->_surname = $surname;
}
public function getSurname() {
return $this->_surname;
}
public function setEmail($email) {
$this->_email = $email;
}
public function getEmail() {
return $this->_email;
}
public function setFounded($founded) {
$this->_founded = $founded;
}
public function getFounded() {
return $this->_founded;
}
...

 

Dzięki metodom getId(), getUsername(), getName(), getSurname(), getEmail(), getFounded() można pobrać odpowiednie wartości. Wszystkie one zostają przekazane do szablonu Smarty (dataadmin.tpl) odpowiedzialnego za wyświetlenie na stronie (Listing 3). Zawartość pliku Smarty przedstawiono na Listingu 4.

 

Listing 3. Fragment pliku dataadmin.php

...
// Przekazujemy id zalogowanego administratora,
// klucz główny pochodzi z tabeli admin bazy danych MySQL.
// Więcej o bazie danych dla przykładu na końcu artykułu.

$objAdmin->setId($objSession->GetUserID());

$objAdmin->dataAdmin();
$objSmarty->assign("id_admin", $objAdmin->getId());
$objSmarty->assign("nazwa", $objAdmin->getUsername());
$objSmarty->assign("imie", $objAdmin->getName());
$objSmarty->assign("nazwisko", $objAdmin->getSurname());
$objSmarty->assign("email", $objAdmin->getEmail());
$objSmarty->assign("data_utworzenia", $objAdmin->getFounded());
$objSmarty->display('dataadmin.tpl');
...

 

Listing 4. Zawartość pliku dataadmin.tpl

<fieldset>
<legend class="txtLegend">Dane administratora</legend>
<br />
<table border="0" cellspacing="2" cellpadding="2" class="data">
<tr bgcolor="{cycle values="#F0F0F0,#DDDDDD"}">
<td ><strong>Nr.</strong></td><td>{$id_admin}</td>
</tr>
<tr bgcolor="{cycle values="#F0F0F0,#DDDDDD"}" >
<td><strong>Nazwa:</strong></td><td>{$nazwa}</td>
</tr>
<tr bgcolor="{cycle values="#F0F0F0,#DDDDDD"}" >
<td><strong>Imię:</strong></td><td>{$imie}</td>
</tr>
<tr bgcolor="{cycle values="#F0F0F0,#DDDDDD"}" >
<td><strong>Nazwisko:</strong></td><td>{$nazwisko}</td>
</tr>
<tr bgcolor="{cycle values="#F0F0F0,#DDDDDD"}" >
<td><strong>E-mail</strong></td><td>{$email}</td>
</tr>
<tr bgcolor="{cycle values="#F0F0F0,#DDDDDD"}" >
<td><strong>Data utworzenia:</strong></td><td>{$data_utworzenia}</td>
</tr>
</table>
<br />
</fieldset>

 

Przykład przedstawiony w artykule sprawdzi się tylko przy pobieraniu jednego wiersza z bazy danych. Jeśli chcemy wyświetlić wiele wierszy na jednej stronie pobranych za pomocą zapytania SELECT, zapraszamy do zapoznania się z artykułem „Wyświetlanie opublikowanych artykułów z wybranej kategorii - PHP, szablony Smarty, MySQL”.

W przykładzie wykorzystano bazę danych opisaną w artykule „Przykładowy projekt bazy danych strony internetowej”.

 

Warto przeczytać:

Wybrane książki:

Książki Helion