Ik ben bezig met een soort van template parser. Ik wil in de tabel de tabelrows met {tags} in een lus gooien zodat ik een overzicht krijg van alle gegevens in de database. De {tags} in die table rows moeten assignt worden met data uit de database.
Dit is wat ik tot nu toe heb:
Aan het einde maak ik van de array $block_new weer een $string omdat ik deze dan kan vervangen met een blok (preg_replace("/<!-- START BLOCK : " .$blockname. " -->(.*?)<!-- END BLOCK : " .$blockname. " -->/s", $block, $this->tpl_file);)
Ik krijg de volgende output:

Je ziet dat alleen de laatste tags worden assignt. Wie weet er een oplossing hiervoor?

Greetz,
Pherion
Dit is wat ik tot nu toe heb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| <?php include('libs/lib_main.inc.php'); $main = new main; $main->start(); $tags_assign = array ( "{id}" => 'id', "{naam}" => 'naam', "{email}" => 'email', ); /* MySQL connection */ $db_list = new mysql; $db_list->db_connect(); $db_list->db_select('dixre'); $db_list->db_query("db_list", "SELECT * FROM test"); echo '<table border = "1">'; $block = '<tr><td width="200">{id}</td><td width="200">{naam}</td><td width="200">{email}</td></tr>'; $block_assign = array(); $data_assign = array(); $block_new = array(); while ($data = $db_list->db_fetch_array("db_list") ) { array_push ($block_assign, $block); array_push ($data_assign, $data); } for ($x = 0; $x < $db_list->db_num_rows("db_list"); $x++) { foreach ($tags_assign as $tag => $value){ $test = str_ireplace($tag, $data_assign[$x][$value], $block_assign[$x]); } array_push ($block_new, $test); } echo $block = join ("", $block_new); echo '</table>'; ?> |
Aan het einde maak ik van de array $block_new weer een $string omdat ik deze dan kan vervangen met een blok (preg_replace("/<!-- START BLOCK : " .$blockname. " -->(.*?)<!-- END BLOCK : " .$blockname. " -->/s", $block, $this->tpl_file);)
Ik krijg de volgende output:
Je ziet dat alleen de laatste tags worden assignt. Wie weet er een oplossing hiervoor?
Greetz,
Pherion