反序列化特定列

时间:2011-08-23 16:53:35

标签: php mysql while-loop deserialization

更新:我删除了一些print_r&回调测试我已经在循环之上,我能够查看数据。

使用以下查询从表中获取所有内容。

$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 ['paragraph_id']被序列化。我运行了一个测试,以便将数据显示为我需要它如下所示;

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

其中打印出的数据到底是我需要的。但是我如何在while循环中实现它呢?我尝试了几种变化,都是失败的。我已经尝试保存到循环外部和内部的变量。我也尝试在每行迭代中反序列化。似乎没有什么工作,行不会出现在表中。

如何在反序列化该列时使用该循环显示该表中的数据?

2 个答案:

答案 0 :(得分:1)

你应该使用print_r,选项为true,如

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

或简单

echo '<td>' . implode(", ",unserialize($do['paragraph_id'])) . '</td>';

答案 1 :(得分:0)

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>"; 
}