Eine Funktion macht nicht, was sie soll...


 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Hilfe für Webmaster -> PHP / MySQL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
BB-BF-BM
Gast

BeitragEine Funktion macht nicht, was sie soll... Antworten mit Zitat

EDIT: Tut mir Leid wegen der langen Code-Stellen, aber ich wusste nicht, wie ich es einfacher hätte darstellen können. Embarassed


Ich habe folgenden Code(-Ausschnitt):
PHP-Code:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php

class template
{
    var 
$assign_block_vars = array();
    var 
$blocks = array();

    function 
assign_block_vars($loopname$var_array$src '')
    {
        if( !
is_array($var_array) )
        {
            die(
'An Funktion $this->assign_block_vars() muss der zweite Parameter als Array übergeben werden!');
        }

        if( 
$src != '' )
        {
            
$src_arr explode('.'$src);
            for( 
$i=; isset($inloops[$i]) ; $i++ )
            {
                
$src_array[$i] = explode('|'$inloops[$i]);
                
$src_arr_i0 $src_array[$i][0];
                
$src_arr_i1 $src_array[$i][1];
                
$assign_block_vars_src = ( isset($assign_block_vars_src) ? $assign_block_vars_src[$src_arr_i0][$src_arr_i1] : $this->assign_block_vars[$src_arr_i0][$src_arr_i1] );
                
$blocks_src = ( isset($blocks_src) ? $blocks_src[$src_arr_i0] : $this->blocks[$src_arr_i0] );
            }
        }
        else
        {
            
$assign_block_vars_src $this->assign_block_vars;
            
$blocks_src $this->blocks;
        }

        if( isset(
$blocks_src[$loopname]) )
        {
            
$loop_nr $blocks_src[$loopname] + 1;
        }
        else
        {
            
$loop_nr 0;
            
$blocks_src[$loopname] = 0;
        }

        foreach( 
$var_array as $var_key => $var_value )
        {
            if( 
is_array($var_value) )
            {
                
$function_assign_block_vars $this->assign_block_vars(
                    
$var_key,
                    
$var_value,
                    ( (
$src != '') ? ($loopname.'|'.$loop_nr.'.'.$src) : ($loopname.'|'.$loop_nr) )
                );
                
$assign_block_vars_src[$loopname][$loop_nr][$var_key] = $function_assign_block_vars;
            }
            else
            {
                
$assign_block_vars_src[$loopname][$loop_nr][$var_key] = $var_value;
            }
        }


        if( 
$src != '' )
        {

            
$this->blocks $blocks_src;
            
$this->assign_block_vars $assign_block_vars_src;
        }
        else
        {
            
$this->assign_block_vars $assign_block_vars_src;
            
$this->blocks $blocks_src;
        }

        return 
$assign_block_vars_src[$loopname];
    }
}

?>
Dieser wird in einer anderen Datei folgendermaßen angewendet:
PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
for( $i=$i $i++ )
{
    
$template->assign_block_vars('cat_row', array(
        
'URL'            =>    $i.'Url'.$i,
        
'NAME'            =>    $i.'Name'.$i,
        
'S_HAS_SUBARTS'    =>    ($i 2),
        
'subart_row'    =>    array(
            
'URL'    =>    'U'.$i.'R'.$i.'L',
            
'NAME'    =>    'N'.$i.'A'.$i.'M'.$i.'E'
        
)
    ));
}
print_r($template->assign_block_vars); // Zum Überprüfen der Funktion 
Wie man unten sehen kann, überprüfe ich, ob alles gut gegangen ist, doch dies ist nicht der Fall. Ausgegeben wird folgendes:
Code:
Array
(
    [cat_row] => Array
        (
            [0] => Array
                (
                    [URL] => 0Url0
                    [NAME] => 0Name0
                    [S_HAS_SUBARTS] => 0
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U0R0L
                                    [NAME] => N0A0M0E
                                )

                        )

                )

            [1] => Array
                (
                    [URL] => 5Url5
                    [NAME] => 5Name5
                    [S_HAS_SUBARTS] => 1
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U5R5L
                                    [NAME] => N5A5M5E
                                )

                        )

                )

        )

)


Ausgegeben werden sollte soetwas:
Code:
Array
(
    [cat_row] => Array
        (
            [0] => Array
                (
                    [URL] => 0Url0
                    [NAME] => 0Name0
                    [S_HAS_SUBARTS] => 0
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U0R0L
                                    [NAME] => N0A0M0E
                                )

                        )

                )

            [1] => Array
                (
                    [URL] => 1Url1
                    [NAME] => 1Name1
                    [S_HAS_SUBARTS] => 1
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U1R1L
                                    [NAME] => N1A1M1E
                                )

                        )

                )

            [2] => Array
                (
                    [URL] => 2Url2
                    [NAME] => 2Name2
                    [S_HAS_SUBARTS] => 0
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U2R2L
                                    [NAME] => N2A2M2E
                                )

                        )

                )

            [3] => Array
                (
                    [URL] => 3Url3
                    [NAME] => 3Name3
                    [S_HAS_SUBARTS] => 1
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U3R3L
                                    [NAME] => N3A3M3E
                                )

                        )

                )

            [4] => Array
                (
                    [URL] => 4Url4
                    [NAME] => 4Name4
                    [S_HAS_SUBARTS] => 0
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U4R4L
                                    [NAME] => N4A4M4E
                                )

                        )

                )

            [5] => Array
                (
                    [URL] => 5Url5
                    [NAME] => 5Name5
                    [S_HAS_SUBARTS] => 1
                    [subart_row] => Array
                        (
                            [0] => Array
                                (
                                    [URL] => U5R5L
                                    [NAME] => N5A5M5E
                                )

                        )

                )

        )

)
Woran liegt das / Wie erreiche ich mein gewünschtes Ergebnis?
21 Mai 2006 19:19
BB-BF-BM
Gast

Beitrag Antworten mit Zitat

Habs gestern Nacht selbst noch entdeckt:

statt
PHP-Code:
1
2
3
4
if( isset($blocks_src[$loopname]) )
        {
            
$loop_nr $blocks_src[$loopname] + 1;
        } 

muss es so heißen:
PHP-Code:
1
2
3
4
5
if( isset($blocks_src[$loopname]) )
        {
            
$blocks_src[$loopname]++;
            
$loop_nr $blocks_src[$loopname];
        } 
22 Mai 2006 06:17
axinio Internet Marketing
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Hilfe für Webmaster -> PHP / MySQL Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  

Ähnliche Beiträge
Thema Webmaster Forum Antw. Autor Verfasst am
Keine neuen Beiträge Doppelmenue bei ID in <form> ge... Javascript 9 Phil1710 04 Feb 2012 12:17 Letzten Beitrag anzeigen
Keine neuen Beiträge Homepage läuft nicht mit dem Internet... CSS 1 CharlotteG 08 Dez 2011 15:42 Letzten Beitrag anzeigen
Keine neuen Beiträge Angehängte Bilder werden übermittelt,... PHP / MySQL 3 Casadero 19 Nov 2011 19:17 Letzten Beitrag anzeigen
Keine neuen Beiträge Darf ich eine von mir betreute Websit... Hilfe für Webmaster 2 ruby64 04 Nov 2011 20:09 Letzten Beitrag anzeigen
Keine neuen Beiträge Vertikal zentriertes Div macht Proble... CSS 0 sora 20 Sep 2011 13:16 Letzten Beitrag anzeigen