2012-09-26 22 views
-4

我在我的数据库中有88行我从数据库中检索我想让他们显示它们像32,30,26这样的三列,可以帮助我如何做到这一点。 32,30,30是每列应该有的行数我在我的数据库中有88行我从数据库中检索我希望他们在三个列中显示他们mysql mysql

+1

你有什么迄今所做?什么是表结构? –

+0

你有什么尝试?你如何从数据库中检索数据? - 你想在三栏中展示什么? (大概)每行的三个字段?或者你想在每列中显示一行? –

+0

我在sql查询中使用了限制1,30,限制30,60和60,80 ....到目前为止,这些值正在重试,但未能正常运行 –

回答

1

如果你甚至想要列,它会更容易做(我不能真正理解你来到32,30,26锄头)但你可以做是这样的:

$counter=1; 
echo "<table><tr>" 
while($row=someFetchFromDatabase($result)) 
{ 
    echo "<td>$row['col1']</td>"; 
    $counter++; 
    if($counter%3==0) 
    { 
     echo "</tr><tr>"; 
    } 
} 
echo "</tr></table>"; 

这将增加一个计数器和显示三行,直到数据集的结尾 - 虽然你应该添加到该解决方案在这里清理的细节。

+0

这很好,但会显示从左到右的结果,然后从上到下。我的下面的版本应该在后面的列之前填写左边的列。如果你(@Siva Shanker)对你的问题有具体的描述,那么你可以拯救我们中的一些人,浪费一些时间! – cronoklee

+0

@cronoklee是的,似乎是这样。这个问题相当模糊。无论如何,你的答案+1,它似乎非常好。 – Fluffeh

1

计算结果的数量mysql_num_rows()除以3.在你的php循环中,添加一个计数器。当它遇到分裂的结果时,移到下一列。事情是这样的:

$third = mysql_num_rows($sqlresult)/3; 
$counter=1; 
echo "<div>"; 
while($r = mysql_fetch_array($sqlresult)){ 
    if($counter++ > $third){ 
     $counter = 1; 
     echo "</div><div>"; 
    } 
    echo $r[0]."<br />"; 
} 
echo "</div>"; 

你也可以,如果你正在使用表改变的div来TDS和TRS或删除标记和使用逗号,你在你的问题做了

+0

我很想为+1的字面解释问题。但是你有理由相信这实际上是期望的行为吗? –

+0

不,这是一个很差的问题,所以我做了一些假设 – cronoklee

相关问题