Class IsMySQLListClass

Description

Implements interfaces:

  • IIsDBListClass
  • Iterator (internal interface)
  • ArrayAccess (internal interface)

Lista osztály

Jelen verzió már tartalmazza a listakezeléshez szükséges legalapvetőbb eljárásokat, tulajdonságokat.
Ebbe beleértendők a következők:

  • Lista inicializálása: init()
  • Egy oldal inicializálása: page()
  • Új elem felvétele: add()
  • Rekord törlése: delete()
  • Listán való iteráció (foreach ciklus használata az objektumon)

  1.  require_once 'REDBObjects/REDBObjects.class.php';
  2.  REDBObjects::uses('mysql');
  3.  
  4.  mysql_connect('localhost''root''password');
  5.  mysql_select_db('teszt');
  6.  
  7.  $list->tableName_signal 'T_'//Ez az alapértelmezett is
  8.  $list->table_field_sep '__'//az alapértelmezett az egy darab _ jel
  9.  
  10.  $list->page('teszt'10);
  11.  foreach ($list as $key => $object)
  12.  {
  13.     print $object->T_teszt__id.', '.$object->field.'<br />'.PHP_EOL;
  14.     if ($object->id == 2)
  15.     {
  16.         $object->field 'P';
  17.         $object->update();
  18.     }
  19.  }

  • property: string $tableName_signal: Táblanevet jelző prefix
  • property: string $table_field_sep: Táblanevet és mezőnevet elválasztó jel
  • author: Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  • copyright: Copyright (C) 2010, Takács Ákos
  • license: http://www.gnu.org/licenses/lgpl.html

Located in /mysql/IsMySQLListClass.class.php (line 76)

ADBClass
   |
   --ADBListClass
      |
      --IsMySQLListClass
Variable Summary
 string $className
 int $count
 int $limit
 int $page
 int $pages
 IIsDBClass[] $records
 string $sql
Method Summary
 IsMySQLListClass __construct (array $tablelist, [string $className = 'IsMySQLClass'])
 int add (IIsDBClass $object, [bool $append = false])
 int countPages ()
 int countRecords ()
 mixed delete ( $keyName,  $keyValue)
 void getFields ()
 void init ($psql $psql, [$offset &$offset = 0], [$limit $limit = 0])
 int maxpage ()
 void page ($sql $sql, $limit $limit, [int $page = null])
 void protectTable (string $table)
 void setPagesAndCount (string $sql, int $limit)
 void unProtectTable (string $table)
Variables
string $className = '' (line 90)

A listában tárolandó objektum típus

  • access: protected
int $count = null (line 97)

A lekérdezésre illeszkedő rekordok száma

  • access: protected

Redefinition of:
ADBListClass::$count
A lekérdezésre illeszkedő rekordok száma
array $defaultTablelist = array() (line 134)

A megvalósítandó táblák listája.

Még a megváltoztatás előtt. (Aliasok)

  • access: public
int $limit = 0 (line 153)

Limit, ami az inicializáláskor lett megadva

  • access: protected
int $page = null (line 110)

Aktuális oldal száma, ha már lekértünk egy oldalt.

  • access: protected
int $pages = 1 (line 104)

Adott limit mellett a megjelenítéshez szükséges oldalak minimális száma

  • access: protected
array $protectedTables = array() (line 141)

Védett táblák listája. Ezekből a táblákból nem törölhető rekord a delete() metódussal.

  • access: protected
IIsDBClass[] $records = array() (line 83)

Lista elemeit tároló tömb

  • access: public
string $sql = "" (line 147)

Az sql kód from utáni része, amivel inicializálva lett a lista

  • access: protected

Inherited Variables

Inherited from ADBListClass

ADBListClass::$endLinkText
ADBListClass::$nextLinkText
ADBListClass::$pageLinkPattern
ADBListClass::$pagevar
ADBListClass::$prevLinkText
ADBListClass::$startLinkText

Inherited from ADBClass

ADBClass::$keyName
ADBClass::$priKeys
ADBClass::$primary_key
ADBClass::$properties
ADBClass::$tableAliases
ADBClass::$tablelist
ADBClass::$tableName_signal
ADBClass::$table_field_sep
Methods
Constructor __construct (line 161)

Konstruktor

IsMySQLListClass __construct (array $tablelist, [string $className = 'IsMySQLClass'])
  • array $tablelist
  • string $className
add (line 353)

Új rekordok hozzáadása több táblához

Az add() metódus segítségével egyszerűen hozzáadhatunk az adatbázishoz egy új rekordot.
Csak egy értékekkel feltöltött, példányosított IsMySQLClass típusú objektumra van szükség.

  1.  require_once 'REDBObjects/REDBObjects.class.php';
  2.  REDBObjects::uses('mysql');
  3.  
  4.  mysql_connect('localhost''root''password');
  5.  mysql_select_db('teszt');
  6.  
  7.  class MyClass extends IsMySQLClass {}
  8.  class MyList extends IsMySQLListClass {}
  9.  $tablelist array(
  10.     'table1'=>array('field1','field2'),
  11.     'table2'=>array('field3','field4'));
  12.  $object new MyClass($tablelist);
  13.  $object->keyName 'id';
  14.  $list new MyList($tablelist,'MyClass');
  15.  $object->field1 'value1';
  16.  $object->field3 'value3';
  17.  // A tulajdonságokat lekérdezhetővé teszi,de nem frissíti az adatbázist,
  18.  // mivel nincs is mit
  19.  $object->update(false);
  20.  $list->add($object);

  • return: Autoincrement azonosító
int add (IIsDBClass $object, [bool $append = false])
  • IIsDBClass $object: Listához adandó objektum
  • bool $append: Ha true, nem csak adatbázisba veszi fel az elemet, Hanem azonnal hozzáfűzi a recordlistához. Lekérdezhetővé téve.

Implementation of:
IIsDBListClass::add()
A listához új elem hozzáadása
countPages (line 409)
  • return: Lekérdezésre illeszekőd oldalak száma a limitnek megfelelően
int countPages ()

Implementation of:
IIsDBListClass::countPages()
Egyszerre minimum hány oldal szükséges a lista összes elemének megjelenítésére adott limit mellett
countRecords (line 401)
  • return: Lekérdezésre illeszkedő rekordok száma
int countRecords ()

Implementation of:
IIsDBListClass::countRecords()
Összesen hány rekordra illeszkedik a lista ( lekérdezés )
delete (line 519)

Rekord törlés mezőn értéke

  1.  $list->delete('T_tablename_fieldname','value');

mixed delete ( $keyName,  $keyValue)
  • $keyName
  • $keyValue

Implementation of:
IIsDBListClass::delete()
Egy tábla rekordjainak törlése
getFields (line 427)

A táblalista szerint az összes lehetséges mező nevének lekérdezése,

és beállítása tulajdonságnak

  • access: protected
void getFields ()
init (line 234)

Lista inicializálása

  • access: public
void init ($psql $psql, [$offset &$offset = 0], [$limit $limit = 0])
  • $psql $psql: FROM utáni sql kód (limit nélkül)
  • $offset &$offset: Ennyi rekordot ugrik át a listában
  • $limit $limit: Ennyi rekordot kérdez le az offset értéktől kezdve

Implementation of:
IIsDBListClass::init()
Lista inicializálása
maxpage (line 418)

countPages() aliasa

  • access: public
int maxpage ()

Redefinition of:
ADBListClass::maxpage()
page (line 207)

Aktuális oldalszám szerint lista inicializálása

void page ($sql $sql, $limit $limit, [int $page = null])
  • int $page: Oldalszém. Elhagyása esetén az url-ből veszi az oldalszámot.
  • $sql $sql: FROM utáni sql kód
  • $limit $limit: Hány rekord legyen egy oldalon

Redefinition of:
ADBListClass::page()
Aktuális oldalszám szerint lista inicializálása
protectTable (line 494)

Egy táblát le lehet vele védeni, hogy a megvalósított listában egy törlés esetén abból a táblából ne lehessen semmit sem kitörölni. Hasznos, ha például egy üzenetlistából törlünk felhasználói azonosító alapján a delete() -el, és nem szeretnénk, hogy a felhasználó is törlődjön.

  • access: public
void protectTable (string $table)
setPagesAndCount (line 185)
  • access: protected
void setPagesAndCount (string $sql, int $limit)
  • string $sql: FROM utáni sql kód (Limit nélkül)
  • int $limit: limit
unProtectTable (line 504)
void unProtectTable (string $table)
  • string $table: Feloldandó tábla neve

Inherited Methods

Inherited From ADBListClass

 ADBListClass::endLinkText()
 ADBListClass::maxpage()
 ADBListClass::nextLinkText()
 ADBListClass::page()
 ADBListClass::pageLinkPattern()
 ADBListClass::pageLinks()
 ADBListClass::pageNumber()
 ADBListClass::pagevar()
 ADBListClass::prevLinkText()
 ADBListClass::setUrl()
 ADBListClass::startLinkText()

Inherited From ADBClass

 ADBClass::sep_table_field()

Documentation generated on Fri, 02 Apr 2010 17:34:19 +0200 by phpDocumentor 1.4.1