【问题标题】:Problem with echo values from database来自数据库的回显值问题
【发布时间】:2011-09-25 21:51:28
【问题描述】:

我插入了一行数据库表值,现在我想用 json_encode 回显它们,但出现以下错误:

PHP:

$name_tour = $this->input->post('tour_name');
$query     = $this->db->query("SELECT * FROM tour_foreign WHERE name LIKE '$name_tour' ORDER BY id desc");
$data      = array();
foreach ($query->result() as $row) {
    $data_rp = json_decode($row->residence_p, true);
    $data[]  = array(
        'residence_p' => $data_rp,
    );
}
echo json_encode($data);
echo '<p>';
var_dump($data);

上面的php代码输出:

[{"residence_p":null}] // This is output of json_encode($data)

array(1) { [0]=> array(1) { ["residence_p"]=> NULL } } // This is output of var_dump($data)

数据库中的数据:(此数据由 json_encode 插入)

[{
    "start_date": ["1111", "2222"],
    "end_date": ["1111", "2222"],
    "price_change": ["1111", "2222"]
}, {
    "start_date": ["3333", "444"],
    "end_date": ["3333", "4444"],
    "price_change": ["3333", "4444"]
}, {
    "start_date": ["5555", "6666"],
    "end_date": ["5555", "6666"],
    "price_change": ["5555", "6666"]
},]

我该怎么办?

【问题讨论】:

  • 错误是什么?你期待看到什么?
  • 我想从内部数据库中获取数据,请看代码很清楚,我想要什么。

标签: php arrays codeigniter json


【解决方案1】:

您应该删除最后一个]之前的,,否则数据是无效的JSON,无法被json_decode()正确解析。

【讨论】:

    【解决方案2】:

    你为什么要这样做?

    $data_rp = json_decode($row->residence_p, true);
    

    你真的在你的数据库中存储了 json 数据吗?我对此表示怀疑,但如果你这样做了,请不要!这样做违背了拥有包含列的数据库的全部目的。

    【讨论】:

    • 我在数据库中放入了post数据。
    • 不要那样做!!!制作列start_dateend_dateprice_change,不要将json数据存入数据库,否则你会后悔的。
    猜你喜欢
    • 2018-09-07
    • 2016-10-11
    • 2021-12-13
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2021-07-01
    相关资源
    最近更新 更多