-1

您好,我正在 wordpress 中创建一个 php 脚本来生成一个动态 html 表,该表的数据是从数据库中获取的,

函数是这样的:

1) 主题 2) 主题 3) 项目

对于每个 [主题],有 [主题],对于每个 [主题],有多个 [项目]

我想将每个 [topic] 显示为新行,并在其中显示 [items]

这是我的功能不起作用帮助我更正我的代码。

function dynamic_table($attr) {

global $wpdb;

$ThemeCode = $attr['theme'];
$Themes = getThemeinfo($ThemeCode);
$sr = 1;

$dt_list = $wpdb->get_results("SELECT * FROM wp_mtresources WHERE ThemeCode= '$ThemeCode'");
if(!empty($dt_list)) {
    echo '<h2>' . $Themes['Desc'] . '</h2>
        <table style="margin: auto; margin-bottom: 30px;" border="0" cellspacing="0" cellpadding="0">
        <tbody>
            <tr>
                <th>Topic</th>
                <th>Presenation</th>
                <th>Worksheets</th>
                <th>Other Resources</th>
            </tr>
            ';
    foreach ($dt_list as $dt) {
        $tp_list = $wpdb->get_results("SELECT * FROM wp_mtresources WHERE TopicCode= '$dt->TopicCode'");

        $Topics = getTopicsinfo($dt->ThemeCode, $dt->TopicCode);    
            echo '  
                <tr>
                    <td colspan="4" style="text-align:center;"><a href=""> ' . $Topics['TopicDesc'] . ' </a></td>
                </tr>';
            foreach ($tp_list as $tp) {

                echo '
                    <tr>
                        <td>' . $tp->ResourceLocation.'</td>    
                        <td></td>   
                        <td></td>   
                        <td></td>   
                    </tr>       
                ';

            }
    }   
        echo '</tbody>
              </table>';    
} else {
    return 'No Theme or Topic found.';
}   


 }
 add_shortcode('dt', 'dynamic_table');

这是意想不到的结果 截图

4

2 回答 2

2

首先我会从你的数据库中选择

PDO example..
while($rows = $query->fetch(PDO:FETCH_ASSOC)){
  $data = $rows;
}

现在一切都在 $data 数组中,以您的表名作为键。

在其他数组中保存任何其他数据

$another_array = ['example', 'example']; <- 只是一个例子,可以是另一个像上面那样的数据库检索,不管只是另一个数据数组!

然后对于每个循环的数组之一,但访问该循环中的其他数组..

$array1 = ['one', 'two', 'three'];
$array2 = ['a', 'b', 'c'];

foreach($array1 as $k => $v){
     echo $v.' - '.$array2[$k];
}

结果看起来像..

一 - a 二 - b 三 - c

对不起,如果这还不够清楚!

于 2012-10-24T11:18:37.117 回答
0

在我的一个例子中,我确实喜欢这样

$i=0;
$count=10;
echo count($_POST['dates']);echo'<br>';
while($i<10 )
{
$date = ($_POST['dates'][$i]) ;
$fee = ($_POST['fee'][$i]);
echo "The value of  is".$date .'-------'.$fee;
echo'<br>';
$i=$i+1;
} 

and it gave answer like 
The value of is2017-02-28-------800
The value of is2017-02-21-------1000
The value of is2017-02-13-------200
于 2017-02-11T22:04:07.650 回答