PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   array / foreach (http://www.selfphp.de/forum/showthread.php?t=19479)

reinhardlange 31.05.2008 13:08:41

array / foreach
 
Hallole,

sitze schon seit Stunden for einem Problem:

In der DB (MySQL) habe ich Datensätze, die ich als arrays auslese -> soweit auch ok.

Mit einer foreach-Schleife bekomme ich diese auch angezeigt, aber einzeln -> eigenlich auch ok.

Diese gefundenen arrays möchte ich nun in ein numerisches array übernehmen (also dann mehrdimensional).

PHP-Code:

foreach ( $ims_sys_start as $int_sys_header )
    {
    if ( !empty ( 
$int_sys_header['variable'] ) )
        {
        switch ( 
$int_sys_header['variable'] )
            {
            case 
'left'        :    
            
                foreach ( 
$int_sys_header as $element  )
                    {
                    echo 
'<pre>';
                    
print_r ($element);
                    echo 
'</pre>';
                    };        
                        
            default            : echo 
'Default: '.$int_sys_header['variable'].' - ';
            };
        };
    }; 

Die Anzeige sieht dann so aus (also die 3 arrays werden korrekt gefunden -> 2. foreach im o.a. Code / mit print_r):

Array
(
[data_id] => 00000028
[active] => 1
[show] => 1
[section] => header
[setting] => 3
[variable] => center
[value] =>
[auto] =>
[extra] =>
[contract] => 1
)

Array
(
[data_id] => 00000029
[active] => 1
[show] => 1
[section] => header
[setting] => 3
[variable] => right
[value] =>
[auto] =>
[extra] =>
[contract] => 1
)

Array
(
[data_id] => 00000030
[active] => 1
[show] => 1
[section] => header
[setting] => 3
[variable] => left
[value] => search
[auto] =>
[extra] => M
[contract] => 1
)

Frage: wie bekomme ich es hin, dass diese array in ein neues ... mit numerischem ... Schlüssel aufgebaut werden?

Vielen Dank !

Gruss Reinhard

ksticker 31.05.2008 13:13:08

AW: array / foreach
 
Probiers mal so

PHP-Code:

$datenarray = array();
while(
$daten mysql_fetch_assoc($dbdaten))
{
  
$datenarray[] = $daten;


So in der Art müsste es funktionieren.

reinhardlange 31.05.2008 13:28:23

AW: array / foreach
 
Halolole,

habe das mal so ausprobiert (also innerhalb foreach)

PHP-Code:

$datenarray = array();
while(
$daten $int_sys_header)
{
$datenarray $daten;
echo 
'<pre>';
print_r ($datenarray);
echo 
'</pre>';                        


bzw. so

PHP-Code:

$datenarray = array();
while(
$daten $int_sys_header)
{
$datenarray $daten;
}
echo 
'<pre>';
print_r ($datenarray);
echo 
'</pre>'

funktioniert leider nicht -> geht in eine Endlosschleife bzw. hängt sich komplett auf.

... andere Idee?

ksticker 31.05.2008 13:35:07

AW: array / foreach
 
Wo liest Du denn die Daten aus der SQL-DB aus?

reinhardlange 31.05.2008 13:42:31

AW: array / foreach
 
Hier:

PHP-Code:

$sql_sys            "SELECT * FROM `system` 
                        WHERE
                        $ims_set_config[contract] = '1'
                        AND
                        `active` = '1'
                        AND
                        `show` = '1'
                        ORDER BY
                        `section` ASC ,
                        `setting` ASC
                        "
;
                        

$ims_sys_result    mysql_query $sql_sys );
while ( 
$ims_sys mysql_fetch_array $ims_sys_result ) )
    {
    
$ims_sys_start[]    = array
        (
        
'data_id'        =>    $ims_sys['data_id'],
        
'active'        =>    $ims_sys['active'], 
          
'show'            =>    $ims_sys['show'],
        
          
'section'        =>    $ims_sys['section'],
        
'setting'        =>    $ims_sys['setting'],
        
'variable'        =>    $ims_sys['variable'],
        
'value'            =>    $ims_sys['value'],
        
'auto'            =>    $ims_sys['auto'],
        
'extra'            =>    $ims_sys['extra'],
        
        
'contract'        =>    $ims_sys[$ims_set_config[contract]],
        );
    }; 

Gruss Reinhard

ksticker 31.05.2008 13:48:52

AW: array / foreach
 
Probier es doch mal so:

PHP-Code:

$sql_sys            "SELECT * FROM `system`  
                        WHERE 
                        $ims_set_config[contract] = '1' 
                        AND 
                        `active` = '1' 
                        AND 
                        `show` = '1' 
                        ORDER BY 
                        `section` ASC , 
                        `setting` ASC 
                        "

                         

$ims_sys_result    mysql_query $sql_sys ); 
while ( 
$ims_sys mysql_fetch_array $ims_sys_result ) ) 
    { 
    
$ims_sys_start[]    = array 
        ( 
        
'data_id'        =>    $ims_sys['data_id'], 
        
'active'        =>    $ims_sys['active'],  
          
'show'            =>    $ims_sys['show'], 
         
          
'section'        =>    $ims_sys['section'], 
        
'setting'        =>    $ims_sys['setting'], 
        
'variable'        =>    $ims_sys['variable'], 
        
'value'            =>    $ims_sys['value'], 
        
'auto'            =>    $ims_sys['auto'], 
        
'extra'            =>    $ims_sys['extra'], 
         
        
'contract'        =>    $ims_sys[$ims_set_config[contract]], 
        ); 
     
$array2[] = $ims_sys_start;
    }; 


ksticker 31.05.2008 13:53:03

AW: array / foreach
 
Aber ich glaube das Ergebnis entspricht nicht 100% Deinen Vorstellungen.

reinhardlange 31.05.2008 13:54:46

AW: array / foreach
 
Hallole,

so ähnlich funktionierts - bin noch in der Probierphase - die Abfrage läuft aber an anderer Stelle.

Erst einmal vielen Dank für den Hinweis -> ist schon mal eine Richtung.

Gruss Reinhard

ksticker 31.05.2008 13:55:44

AW: array / foreach
 
Ansonsten mal so Probieren ;-)

PHP-Code:

$sql_sys            "SELECT * FROM `system`   
                        WHERE  
                        $ims_set_config[contract] = '1'  
                        AND  
                        `active` = '1'  
                        AND  
                        `show` = '1'  
                        ORDER BY  
                        `section` ASC ,  
                        `setting` ASC  
                        "
;  
                          

$ims_sys_result    mysql_query $sql_sys );  
$ims_sys_start   = array ();
while ( 
$ims_sys mysql_fetch_array $ims_sys_result ) )  
    {  
    
$ims_sys_start[]    = $ims_sys
     }; 


reinhardlange 31.05.2008 14:00:25

AW: array / foreach
 
Hi,

die Abfrage ist schon so ok und die array werden genauso gefunden, wie gewünscht und erwartet.

Das Problem ist nur in dieser "Unterabfrage", die Teilergenisse liefern soll.

Aber ich arbeite daran ...

Gruss Reinhard


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:14:58 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.