php pdo json编码数组打印

当我从 hello 数据库中提取数据时,它只写入第一行,而不写入其他行,这可能是什么原因?我对 php json 不太了解,但没有得到任何结果。


未找到 ID 88


**数据库打印**


[{"title":"facebook","contact":"facebook adres"},

{"title":"twitter","contact":"twitter adres"}]

数据库数据


id:87 [{"title":"facebook","contact":"facebook adres"},

    {"title":"twitter","contact":"twitter adres"}]


id:88

    [{"title":"instagram","contact":"instagram adres"},

    {"title":"google","contact":"google adres"}]


数据库功能


function menu($menu_title)

{

    global $db;

    $query = $db->prepare('SELECT * FROM menu WHERE menu_title = :menu_title');

    $query->execute([

        'menu_title' => $menu_title

    ]);

    $result = $query->fetchAll(PDO::FETCH_ASSOC);


    if ($result) {

        $data = [];

        foreach ($result as $key => $value) {

            $data += json_decode($value['menu_content'], true);

        }

        return $data;

    }

    return null;

}

社交媒体 foreach


 <?php foreach (menu('sosyalmedya') as $key => $menu): ?>

 

<?= $menu['title'] ?><br>

<?= $menu['contact'] ?><br>

<?php endforeach; ?>

http://img.mukewang.com/64a910610001f97f09820183.jpg

http://img.mukewang.com/64a910660001e76104900154.jpg

撒科打诨
浏览 106回答 1
1回答

jeck猫

您仅返回每个 JSON 数组的第一个元素。将整个数组附加到结果中。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($result&nbsp;as&nbsp;$value)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;array_merge($data,&nbsp;json_decode($value['menu_content'],&nbsp;true)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}SELECT *顺便说一句,如果您只想要该列,请不要使用menu_content。使用SELECT menu_content.
打开App,查看更多内容
随时随地看视频慕课网APP