如何以所需格式从db检索数据(PHP MYSQL)

时间:2012-12-27 10:14:01

标签: php mysql

我在以所需格式从db检索数据时遇到问题。我使用过PHP MYSQL。我可以使用while($row=mysql_fetch_array($result));等来检索记录......但不是我想要的格式。

假设,从db我垂直获得10条记录为1到10,但我想使用表格的以下格式。

1 2 3 4

5 6 7 8

9 10

注意:记录中没有任何记录是动态的,我希望每行有4列。

请帮帮我。提前谢谢。

5 个答案:

答案 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);
?>