PHP限制每页的行数和列数

时间:2014-01-22 07:49:11

标签: mysql sql select group-by pivot

我有300多条记录。

id | name | last_name                | gender 
-----------------------------------------------
1  | John | Doe                      | Male
2  | Jane | Smith Dolores Clayborne  | Female
3  | Paul | Paulson                  | Male
.
.
.
300 | Jake | Jacob                   | Male

我想在我的表中显示它,每个页面有5列50行。所以下一页将显示另一个rcolumns和50条记录。

我的代码

$req = "SELECT * FROM  `directory` "; 

$query = mysql_query($req);

echo '<table>';
while($row = mysql_fetch_array($query))
{
    echo $row['name'];
}
echo '</table>';

此查询将在一列中显示300条记录

我只需要在5栏上显示它。

应该是下面的结果:

<table>
<tr><td>VALUE1</td><td>VALUE2</td><td>VALUE3</td><td>VALUE4</td><td>VALUE5</td></tr>
<tr><td>VALUE6</td><td>VALUE7</td><td>VALUE8</td><td>VALUE9</td><td>VALUE10</td></tr>
<tr><td>VALUE11</td><td>VALUE12</td><td>VALUE13</td><td>VALUE14</td><td>VALUE15</td></tr>
</table>

感谢。

3 个答案:

答案 0 :(得分:0)

一般答案:为了打印字段:namelast_name,...只需从变量$rows中获取de数据库中的行 - 例如使用PDO ,然后遍历$rows并获取双维数组$rows_array内的值。最后,您只需要迭代并打印来自二维数组的数据。

要获取列名称,只需执行查询

"SHOW COLUMNS FROM tablename"

希望有所帮助, PD:感谢前一位编辑改进答案的格式。

答案 1 :(得分:0)

试试这个:

SELECT CEILING(a.id/5) rowNo, 
       MAX(CASE WHEN a.id%5=1 THEN a.name ELSE '' END) col1, 
       MAX(CASE WHEN a.id%5=2 THEN a.name ELSE '' END) col2, 
       MAX(CASE WHEN a.id%5=3 THEN a.name ELSE '' END) col3, 
       MAX(CASE WHEN a.id%5=4 THEN a.name ELSE '' END) col4, 
       MAX(CASE WHEN a.id%5=0 THEN a.name ELSE '' END) col5
FROM tableA a 
GROUP BY CEILING(a.id/5)

答案 2 :(得分:0)

你想要达到这样的目标吗?

echo '<table>';
$i = 0;
$close = 0;
while($row = mysql_fetch_array($query))
{   
    if($i%50 == 0) {
        echo '<tr>';
        $close += 5;
    }

    echo '<td>'.$row['name'].'</td>';

    if($i == $close)
        echo '</tr>';
    $i++;
}
echo '</table>';