我在以所需格式从db检索数据时遇到问题。我使用过PHP MYSQL。我可以使用while($row=mysql_fetch_array($result));
等来检索记录......但不是我想要的格式。
假设,从db我垂直获得10条记录为1到10,但我想使用表格的以下格式。
1 2 3 4
5 6 7 8
9 10
注意:记录中没有任何记录是动态的,我希望每行有4列。
请帮帮我。提前谢谢。
答案 0 :(得分:2)
您不能使用MySQL,MySQL不能很好地显示您的数据,它只用于存储和检索您的数据。
您需要的是以下内容,而$ array可以替换为数据库中的数据:
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
echo '<table>';
echo '<tr>';
for ($i = 0; $i < sizeof($array); $i++) {
if(($i % 4) == 0 && $i != 0) {
echo '</tr><tr>';
}
echo '<td>';
echo $array[$i];
echo '</td>';
}
echo '</tr>';
echo '</table>';
答案 1 :(得分:1)
数据库中每行有4条记录并没有改变任何东西。数据库中没有这样的功能,因为它没有用处,可以使用PHP来实现。如评论中所述,数据库不是为数据表示而设计的。
您可以使用简单的PHP脚本检索这些数据并将其存储为四组:
$i = 0;
$in = 0;
$array = array();
while($row = mysql_fetch_array($result)) {
if ($i%4) {
$in++;
}
$array[$in][] = $result;
$i++;
}
答案 2 :(得分:0)
正如 juergen d 所说 SQL不是为数据表示而设计的。处理你的逻辑
所以你可以
$array = array(1,2,3,4,5,6,7,8,9,10);
$i=0;
while($i < sizeof($array ) )
{
if($i%4 ==0 && $i>0) echo "<br>";
echo $array[$i++] ;
}
注意将$array
替换为数据库中的数组
答案 3 :(得分:0)
$data = ... your mysqli call that returns the data from mysql
$i = 0;
if ($data) {
$HTML = '<table><tr>';
foreach($data as $k => $v) {
$HTML .= '<td>'.$v.'</td>';
if ($i == 3) {
$i = 0;
$HTML .= '</tr><tr>';
}
$i++;
}
$HTML .= '</tr></table>';
echo $HTML;
}
答案 4 :(得分:0)
这是完整的例子:) ..你需要创建表&#34;类别&#34;在MYSQL中使用&#34; Cname&#34;专栏
<?php
require 'ConnDB.php';
$sql = "Select * From Category";
$ResShowCateg = mysqli_query($conn_link, $sql);
echo '<table>';
echo '<tr>';
for ($i = 0; $i < mysqli_num_rows($ResShowCateg); $i++) {
$row = mysqli_fetch_assoc($ResShowCateg);
if(($i % 3) == 0 && $i != 0){
echo '</tr><tr>';
}
echo '<td>';
echo $row["Cname"];
echo '</td>';
}
echo '</tr>';
echo '</table>';
mysqli_close($conn_link);
?>