我有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>
感谢。
答案 0 :(得分:0)
一般答案:为了打印字段:name
,last_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>';