путаница с синтаксисом php при доступе к базе данных - PullRequest
0 голосов
/ 12 марта 2010

Я пытаюсь сделать следующее:

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

Это не работает.

$ row возвращается моим запросом mysql, он имеет следующее: $ row-> id, $ row-> author, $ row-> date, $ row-> title, и они работают так, как они хорошо отображаются. *

$ столбцы - это следующий массив:

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

он также отлично работает, так как $ column ['name'] отражает идентификатор, автора, дату, заголовок

мой вопрос: как я могу получить доступ к методу $ row-> (это метод?), Передав ему имя из массива ??

Ответы [ 2 ]

1 голос
/ 12 марта 2010

Попробуйте сделать:

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

или

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

в зависимости от того, что читается лучше.

1 голос
/ 12 марта 2010

Я не уверен на 100%, что понимаю, что вы хотите сделать, но я думаю, что вы хотите это:

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

обратите внимание на фигурные скобки. Они удостоверяются, что $column["name"] полностью интерпретируется как свойство, к которому вы хотите получить доступ. Прямо сейчас вы обращаетесь к свойству с именем $column и его ключу массива name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...