从数据库获取数据并将其组织为2乘2

时间:2014-04-03 20:07:43

标签: php sql codeigniter

我的问题看起来像这样:我有3个产品A,B和C.它们有不同的值,它们存储在数据库中。

我有6个这样的列:

1 2 3 4 5 6
7 8 9 ...

目前我按值asc显示它们。我希望按值asc显示它们,并按列分组2乘2,如下所示:

1A 2A 3B 4B 5C 6C
7A 8A 9B ...

我不太了解sql所以我真的不知道如何命令它们像这样回应。我还想把它们保存在数组中并像echo $ data_A [$ i]一样显示它们。$ data_A [$ i + 1];但如果产品数量不相等,那么看起来就不对了。

我想在php中用html显示它们。我有一个宽度为600的容器,每个div有100个宽度。

我希望每行显示2个产品为数学书籍,接下来的2本物理书籍和2本英语书籍。

s

绿色边框显示它们如何按产品类型分组。 感谢

1 个答案:

答案 0 :(得分:1)

我会订购sql,以便所有A产品都在所有B产品之前,然后按ID排序:

select ... order by product, id

(asc是默认值)。

然后我将填充三个"列"作为div元素并向其添加float:left(伪代码 - 自从我执行php以来它已经有一段时间了......):

echo "<div id=A style='float:left'>";
while ($data[$i].product == 'A') {
    // add $data[$i] to the A-div
    echo "<div class='data-item product-a' style='float:left'>";
    echo $data[$i];
    echo "</div>";
    ++$i;
}
echo "</div>";

echo "<div id=C style='float:left'>";
while ($data[$i].product == 'B') {
    // add $data[$i] to the B-div here
    ++$i;
}
echo "</div>";

echo "<div id=C style='float:left'>";
while ($data[$i].product == 'C') {
    // add $data[$i] to the C-div here
    ++$i;
}
echo "</div>";