2014-01-22 46 views
-5

我有300多条记录。每页PHP限制行数和列数

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> 

感谢。

+0

我不清楚你想达到什么。我没有看到数据库和表之间的关系。该命令没有意义。 – Yani

+1

你有什么尝试?向我们展示一些代码,并提供更多的细节,这将更容易帮助。 – codeaddict

+0

这似乎是一个关于简单分页的问题。 – Strawberry

回答

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>'; 
0

一般的答案:为了打印领域:namelast_name,...只是得到德数据库中的行 - 使用PDO例如 - 变量$rows里面,然后通过迭代$rows并得到里面的值一个二维数组$rows_array。最后,你只需要迭代并打印来自二维数组的数据。

要得到列名,只是执行查询

"SHOW COLUMNS FROM tablename" 

希望帮助, PD:由于以前的编辑器提高了答案的格式。

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)