[PHP] assign MySQL data

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
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:

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:

Afbeeldingslocatie: http://pherion.xphire.nl/output.GIF

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

_/-\o_

Greetz,
Pherion

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Nee hoor ze worden allemaal netjes vervangen alleen je overschrijft elke keer je resultaat met de source ( block_assign[$x] )

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je hebt gelijk, stom van me :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
                    for ($x = 0; $x < $db_list->db_num_rows("db_list"); $x++) { 
                            
                        foreach ($assign as $tag => $value){
                        
                            $block_assign[$x] = str_ireplace($tag, $data_assign[$x][$value], $block_assign[$x]);
                            
                        }
                            
                        array_push ($block_new, $block_assign[$x]);
                        
                    }


Zo moet tie natuurlijk :) thnq