如何在多个html表中显示数据库查询结果

时间:2015-05-15 00:28:39

标签: php html mysql

您好我正在尝试解决问题。我研究并花时间但无法解决它抱歉。

我试图在html页面上的多个表中显示数据库表查询结果,并且每个表应该是一个范围,我在这里放置5行,所以如果我的查询包含29行,那么它将显示在6表和最后一个表中将包含4个结果如果第一个表第1行是01那么表的序列号将是正确的然后第2个表第1行将是06."查询结果不是常数但它将取决于数据库记录"

这是我的代码,它只显示了一个表,但没有显示其他表格的结果。

感谢您的时间。 :)

$students = DB::table('mark_prc')
            ->select('student_roll','mark')
            ->where('cen_code', $c_code)
            ->where('sub_code',$subject)
            ->get();

    $k=0; //counter for serial no
    $m=5; // no of row each table
    $c = count($students); // now have data on array after query 29
    $p = ceil($c/5); // the data should be show on 6 tables now

    for($i=0;$i<$p;$i++){
   echo "<table>
            <tr>
                <th>SL</th>
                <th>Roll</th>
                <th>Mark</th>
            </tr>";
        for($j=$k;$j<$m;$j++){
            echo '<tr>
                    <td>'.($k+1).'</td>
                    <td>'.$students[$k]->student_roll.'</td>
                    <td>'.$students[$k]->mark.'</td>
                  <tr>';
            $k++;
        }
        echo '</table>';
    }

1 个答案:

答案 0 :(得分:1)

不确定原因,但for($j=$k;正在进行参考分配,因此$j=&$k

解决方法是 -

for($j=($i*$m);$j<min((($i*$m)+$m),$c);$j++){

($i*$m)获取您的起始值,($i*$m)+$m)添加“每个表的行数” min((($i*$m)+$m),$c)中的$j<min((($i*$m)+$m),$c)$c的最大循环。

所以现在你的代码看起来像 -

$students = DB::table('mark_prc')
            ->select('student_roll','mark')
            ->where('cen_code', $c_code)
            ->where('sub_code',$subject)
            ->get();

    $m=5; // no of row each table
    $c = count($students); // now have data on array after query 29
    $p = ceil($c/5); // the data should be show on 6 tables now

    for($i=0;$i<$p;$i++){
   echo "<table>
            <tr>
                <th>SL</th>
                <th>Roll</th>
                <th>Mark</th>
            </tr>";
        for($j=(($i*$m));$j<min((($i*$m)+$m),$c);$j++){
            echo '<tr>
                    <td>'.($j+1).'</td>
                    <td>'.$students[$j]->student_roll.'</td>
                    <td>'.$students[$j]->mark.'</td>
                  <tr>';
        }
        echo '</table>';
    }