Database 如何打印数据库中的所有certian json数据?

Database 如何打印数据库中的所有certian json数据?,database,json,angle,Database,Json,Angle,我正在尝试的是我有一个页面,你可以输入3个天使整数并提交。 提交后,数据将使用json编码保存在数据库中 {"angle1":"60","angle2":"60","angle3":"90","submit":"Submit"} 以上是保存到一行中的内容 我曾经 <?php $sql = "SELECT * FROM wp_options WHERE option_name LIKE 'angle%' ORDER BY option_name"; $options = $wpdb->

我正在尝试的是我有一个页面,你可以输入3个天使整数并提交。 提交后,数据将使用json编码保存在数据库中

{"angle1":"60","angle2":"60","angle3":"90","submit":"Submit"}
以上是保存到一行中的内容

我曾经

<?php
$sql = "SELECT * FROM wp_options WHERE option_name LIKE 'angle%' ORDER BY option_name";
$options = $wpdb->get_results($sql);
foreach ( $options as $option )
{
    echo '<p><b>'.$option->option_name.'</b> = '
         .esc_attr($option->option_value).'</p>'.PHP_EOL;

    $line = json_decode($option->option_value, true);
}
echo '<span style="color:#f00;">'.'Angel 1 : '.$line['angle1'].'</span><br>';
echo '<span style="color:#0f0;">'.'Angel 2 : '.$line['angle2'].'</span><br>';
echo '<span style="color:#00f;">'.'Angel 3 : '.$line['angle3'].'</span><br>';
但结果仅打印30、60和180,而不是打印所有三个。 有人介意帮我把这三个数据或者至少三组角度都打印出来吗。我相信一旦我明白了这一点,我就可以打印出所有角度的图表,而不是现在,只打印最近的角度和图表

谢谢大家~

附言

我太傻了,我没有把这些echo放到foreach循环中,但我的另一个问题是我相信我需要把下面的代码输入foreach循环中,但是有这么多的标记,有没有办法把所有这些都输入foreach循环,而不是像echo canvas id=“piechart1”之类的东西,然后一点一点地做

<canvas id="piechart1" width="100" height="100"></canvas>
<script src="<?php echo get_stylesheet_directory_uri().'/piechart.js'; ?>"></script>
<script>
    var chartId = "piechart1";
    var colours = ["#f00", "#0f0", "#00f"];
    var angles =  [<?php echo $line['comp2052_angle1'].','.
                              $line['comp2052_angle2'].','.
                              $line['comp2052_angle3'];
                   ?>];
    piechart(chartId, colours, angles);
</script>

];
piechart(图表ID、颜色、角度);

它不会打印3个结果,因为您将它们放在了
的范围之外。它只打印最后一个
$line
,因为
$line
将替换
循环的每个

我想把它修好

<?php
$sql = "SELECT * FROM wp_options WHERE option_name LIKE 'angle%' ORDER BY option_name";
$options = $wpdb->get_results($sql);
foreach ( $options as $option )
{
    echo '<p><b>'.$option->option_name.'</b> = '
         .esc_attr($option->option_value).'</p>'.PHP_EOL;

    $line = json_decode($option->option_value, true);

    // put the echo in for scope
    echo '<span style="color:#f00;">'.'Angel 1 : '.$line['angle1'].'</span><br>';
    echo '<span style="color:#0f0;">'.'Angel 2 : '.$line['angle2'].'</span><br>';
    echo '<span style="color:#00f;">'.'Angel 3 : '.$line['angle3'].'</span><br>';
    echo '<hr/>'; // to separate each data
} 
那么。您可以用下面的代码这样的方式混合html和php

<?php foreach($line as $i => $l): ?>
<canvas id="piechart<?php echo $i?>" width="100" height="100"></canvas>
<script>
    var chartId = "piechart<?php echo $i?>";
    var colours = ["#f00", "#0f0", "#00f"];
    var angles =  [<?php echo $l['angle1'].','.
                              $l['angle2'].','.
                              $l['angle3'];
                   ?>];
    piechart(chartId, colours, angles);
</script>
<?php endforeach; ?>

];
piechart(图表ID、颜色、角度);
将其放在html中上述代码之前的任意位置

<script src="<?php echo get_stylesheet_directory_uri().'/piechart.js'; ?>"></script>

OMG!为什么我会犯这个简单的错误!谢谢…但还有一件事是,我制作的饼图使用画布和脚本html标记,我相信我需要将这些标记实现到for循环中,以便我的饼图也可以打印出来。如何在php中一次实现很多标记?我现在就在画布上发布我的脚本。这太棒了!啊……我从来都不知道我可以把foreach循环放在一行中,循环仍然会运行,直到你把
放在末尾。非常感谢~!今天又学了一个新东西。很抱歉打扰你,你知道我在哪里可以读到关于endforeach的文章吗?我意识到当您使用
$I
变量时,它只在循环中可见。如果从循环外访问它,它将没有值。有关
foreach
的更多信息,请签出此ok,谢谢。我以为你是在循环之外访问它的,这就是为什么
piechart
工作的原因
<?php foreach($line as $i => $l): ?>
<canvas id="piechart<?php echo $i?>" width="100" height="100"></canvas>
<script>
    var chartId = "piechart<?php echo $i?>";
    var colours = ["#f00", "#0f0", "#00f"];
    var angles =  [<?php echo $l['angle1'].','.
                              $l['angle2'].','.
                              $l['angle3'];
                   ?>];
    piechart(chartId, colours, angles);
</script>
<?php endforeach; ?>
<script src="<?php echo get_stylesheet_directory_uri().'/piechart.js'; ?>"></script>