2010-03-12 6 views
0

Je suis en train de faire ce qui suit:confusion de syntaxe php accès résultat de base de données

<?php foreach($sqlResult as $row): ?> 
    <tr> 
     <?php foreach($formdata['columns'] as $column): ?> 
      <td><?php echo $row->$column['name']; ?></td> 
     <?php endforeach; ?> 
    </tr> 
<?php endforeach; ?> 

Cela ne fonctionne pas. $ Row est retourné par ma requête mysql, il a ce qui suit: $ row-> id, $ row-> author, $ row-> date, $ row-> title et ceux-ci marchent bien.

colonnes $ est le tableau suivant:

'columns' => array 
(
    1 => array 
(
    'name' => 'id' 
), 
    2 => array 
(
    'name' => 'author' 
), 
    3 => array 
(
    'name' => 'date' 
), 
    4 => array 
(
    'name' => 'title' 
) 

cela fonctionne aussi bien comme colonne $ [ 'nom'] fait écho id, auteur, date, titre

ma question est de savoir comment serait-il possible pour moi d'accéder à la méthode $ row-> (est-ce une méthode?) en lui passant un nom du tableau ??

Répondre

1

Je ne suis pas 100% sûr que je comprends ce que vous voulez faire, mais je pense que vous voulez ceci:

<td><?php echo $row->{$column['name']}; ?></td> 

les avis des accolades. Ils s'assurent que $column["name"] est entièrement interprété comme la propriété à laquelle vous voulez accéder. En ce moment, vous accédez à la propriété nommée $column et sa clé de tableau name.

1

Essayez de faire:

$column_name = $column['name']; 
echo $row->$column_name; 

ou

echo $row->{$column['name']} 

selon sent plus lisible.

Questions connexes