【问题标题】:Getting data from database and organize it 2 by 2从数据库中获取数据并按 2 对 2 进行组织
【发布时间】:2014-04-03 20:07:42
【问题描述】:

我的问题如下所示:我有 3 个产品 A、B 和 C。它们具有不同的值,并且存储在数据库中。

我有 6 个这样的列:

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

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

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

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

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

我想在每一行显示前 2 本书是数学书,接下来是 2 本书物理书和 2 本书英语书。

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

【问题讨论】:

  • 蚂蚁2只2只地行进,万岁,万岁。蚂蚁 2 只 2 只地行进,欢呼,欢呼。蚂蚁两两行进,小家伙停下来系鞋带......
  • 有趣的一点,但有什么答案吗? :D
  • 我不清楚你的数据库架构是什么,你的数据是什么,你的选择语句是什么......我们需要更多细节。
  • @thebjorn 他们是书:数学英语物理和表格:id(int A_I) type(varchar) value(float),没什么特别的。我想知道我是否可以从 sql 中执行此操作,或者我需要其他东西。
  • 你可以从 sql 做大部分事情,所以“是的”。 (如果您需要更详细的答案,请编辑您的问题以包含足够的信息以便我们为您提供帮助)。

标签: php sql codeigniter


【解决方案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>";

【讨论】:

  • 好的,我可以理解,但是你能更好地解释一下数据是如何添加到 A-div 的吗?
  • 我已经用一些更详细的信息更新了我的答案(php 不是我的母语,所以请在语法上加点盐......)
  • 好的,谢谢,我现在明白你想说什么了。但我不知道我是否可以这样组织 div。目前他们正在输出,正如我解释的那样:1 2 3 4 5 6 当达到 7 时移动到下一行。你的例子很好,我会尝试创建 div 来做到这一点。
猜你喜欢
  • 2018-05-04
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多