vLIB Einführung |
![]() |
Damit vlibTemplate einen LOOP ausgeben kann, muss ein LOOP-Array erzeugt werden, der eine bestimmte Struktur haben muss:
$loop = array(
0 => array('u_id' => 1, 'u_name' => 'Claus'),
1 => array('u_id' => 2, 'u_name' => 'Kelvin'),
2 => array('u_id' => 3, 'u_name' => 'Skrol'),
3 => array('u_id' => 4, 'u_name' => 'Micheal')
);
echo '<pre>'; print_r($loop); echo '</pre>';
Der oben dargestellte Array hat genau die Struktur eines LOOP-Arrays. Mit print_r() lassen sich Arrays sehr übersichtlich ausgeben:
Array
(
[0] => Array
(
[u_id] => 1
[u_name] => Claus
)
[1] => Array
(
[u_id] => 2
[u_name] => Kelvin
)
[2] => Array
(
[u_id] => 3
[u_name] => Skrol
)
[3] => Array
(
[u_id] => 4
[u_name] => Micheal
)
)
Dieses Array wird im Beispiel "loop.php" verwendet. Wie man deutlich sehen kann, handelt es sich um einen zweidimensionalen Array. Bei LOOP-Arrays ist eine Mischung aus Integer- und String-Indizes zwingend vorgeschrieben.
Jeder LOOP muss so aufgebaut werden, dass es sich um einen zweidimensionalen Array handelt, der über zwei Schlüsselfelder angesprochen wird:
Im Beispiel für den "basic_loop" könnte man ein Feld des LOOPS so ausgeben:
echo "Ein Name: {$loop[2][u_name]}";
Dieselbe Struktur gilt auch für verschachtelte LOOPS. Allerdings hat ein verschachtelter LOOP nicht 2 sondern 4, 6, 8 ... also eine gerade Anzahl von Dimensionen. Beispiel:
Array
(
[0] => Array
(
[u_id] => 122
[u_name] => jermyn
[inner] => Array
(
[0] => Array
(
[p_id] => 1235
[p_post] => Hallo Claus und die anderen, die mitlesen.
)
[1] => Array
(
[p_id] => 1237
[p_post] => Hallo Coda, ich hab mir da mal eben dei
)
[2] => Array
(
[p_id] => 1238
[p_post] => Hallo Claus, ich hab mir die vLIB Templ
)
[3] => Array
(
[p_id] => 1243
[p_post] => Hallo Claus, ich sehe das ja genau so w
)
)
)
[1] => Array
[u_id] => 119
[u_name] => rehmaster
[inner] => Array
(
[0] => Array
(
[p_id] => 1203
[p_post] => Ich habe folgendes Problem! Aus 2 MySQL Tabell
)
[1] => Array
(
[p_id] => 1205
[p_post] => Der kann die DB wohl nciht öffnen! Wäre n
)
)
)
[2] => Array
...
)
Auch hier wird die strikte Mischung aus Integer- und String-Indizes eingehalten. Die Ausgabe könnte zum Beispiel mit echo "Ein Post von rehmaster: {$outer[1][inner][0][p_post]}"; erfolgen. Hinweis: Die Debug-Funktion von vlibTemplate zeigt immer einen Array mehr an, als es in Wirklichkeit ist:
Array
(
[loop] => Array
(
[0] => Array
(
[u_id] => 1
[u_name] => Claus
[__FIRST__] => 1
[__ODD__] => 1
[__ROWNUM__] => 1
)
[1] => Array
(
[u_id] => 2
[u_name] => Kelvin
[__INNER__] => 1
[__EVEN__] => 1
[__ROWNUM__] => 2
)
...
)
Hier steht 3x Array, obwohl es in Wirklichkeit nur 2 sind. Es kann sein, dass vLIB intern aus 2 dann 3 Dimensionen macht. Man braucht es für die Programmierung jedoch nicht zu beachten.
Wie man sehen kann, werden in jedem LOOP-Array Konstanten mitgeführt wie: __ODD__ und __ROWNUM__.
Zum Schluss die Arrays aller LOOP-Beispiele auf einen Blick:
Array
(
[0] => Array
(
[name] => Nordheimer, Ute
[city] => Berlin
)
[1] => Array
(
[name] => Smith, Daniel
[city] => Salt Lake City
)
[2] => Array
(
[name] => Pullu, Murath
[city] => Kairo
)
[3] => Array
(
[name] => Leone, Gorgio
[city] => Rom
)
)
Array
(
[0] => Array
(
[name] => Nordheimer, Ute
[birthday] => Samstag, 21.05.1960
[city] => Berlin
)
[1] => Array
(
[name] => Smith, Daniel
[birthday] => Dienstag, 22.06.1965
[city] => Salt Lake City
)
[2] => Array
(
[name] => Pullu, Murath
[birthday] => Donnerstag, 23.07.1970
[city] => Kairo
)
[3] => Array
(
[name] => Leone, Gorgio
[birthday] => Sonntag, 24.08.1975
[city] => Rom
)
)
Array
(
[0] => Array
(
[colname] => name
)
[1] => Array
(
[colname] => birthday
)
[2] => Array
(
[colname] => city
)
[3] => Array
(
[colname] => country
)
)
Array
(
[0] => Array
(
[row] => Array
(
[0] => Array
(
[cell] => Nordheimer, Ute
)
[1] => Array
(
[cell] => 1960-05-21
)
[2] => Array
(
[cell] => Berlin
)
[3] => Array
(
[cell] => Deutschland
)
)
)
[1] => Array
(
[row] => Array
(
[0] => Array
(
[cell] => Smith, Daniel
)
[1] => Array
(
[cell] => 1965-06-22
)
[2] => Array
(
[cell] => Salt Lake City
)
[3] => Array
(
[cell] => USA
)
)
)
[2] => Array
(
[row] => Array
(
[0] => Array
(
[cell] => Pullu, Murath
)
[1] => Array
(
[cell] => 1970-07-23
)
[2] => Array
(
[cell] => Kairo
)
[3] => Array
(
[cell] => Ägypten
)
)
)
[3] => Array
(
[row] => Array
(
[0] => Array
(
[cell] => Leone, Gorgio
)
[1] => Array
(
[cell] => 1975-08-24
)
[2] => Array
(
[cell] => Rom
)
[3] => Array
(
[cell] => Italien
)
)
)
)
Die Ausgaben wurden alle mit dem Befehl print_r() vorgenommen.