Десериализация определенного столбца - PullRequest
2 голосов
/ 23 августа 2011

ОБНОВЛЕНИЕ: я удалил некоторые тесты print_r & echo, которые у меня были над циклом, и я смог просмотреть данные.

Я получаю все из таблицы с помощью следующего запроса.

$result = mysql_query("SELECT * FROM campaign_manager ORDER BY 'date'") or die(mysql_error());

У меня есть цикл, который отображает все в таблице.

while($row = mysql_fetch_array( $result )) {
    // echo out the contents of each row into a table
        echo "<tr>";
    echo '<td>' . $row['campaign_id'] . '</td>';
    echo '<td>' . $row['paragraph_id'] . '</td>';
    echo '<td>' . $row['que_id'] . '</td>';
        echo "</tr>"; 
} 

Пока все довольно просто ... Вот где это сложно.

$ row ['para_id'] сериализуется.Я запустил тест, чтобы данные выглядели так, как мне нужно, следующим образом;

$do = mysql_fetch_array($result);
print_r(implode(", ",unserialize($do['paragraph_id'])));

Который распечатывает данные именно так, как мне нужно.Но как мне реализовать это в моем цикле while?Я пробовал несколько вариантов со всеми неудачами.Я пытался сохранить в переменных снаружи и внутри цикла.Я также попытался десериализовать в каждой итерации строки.Кажется, ничего не работает, и строки не будут отображаться в таблице.

Как получить данные из этой таблицы для отображения с помощью цикла while при десериализации этого одного столбца?

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Вам следует использовать print_r с параметром true, например

print_r(implode(", ",unserialize($do['paragraph_id'])), true);

или просто

echo '<td>' . implode(", ",unserialize($do['paragraph_id'])) . '</td>';
0 голосов
/ 23 августа 2011
while($row = mysql_fetch_array( $result )) {
    // echo out the contents of each row into a table
    echo "<tr>";
    echo '<td>' . $row['campaign_id'] . '</td>';
    echo '<td>' . 
          print_r(implode(", ",unserialize($row['paragraph_id'])), true) 
       . '</td>';
    echo '<td>' . $row['que_id'] . '</td>';
    echo "</tr>"; 
} 
...