当人们填写表格时,所有数据都会被发送并保存在数据库中。 例如:
现在人们填写车轴的距离(在下一页),轴距会更新。他们对转向架表做同样的事情(艰难但没有距离,但有转向架号码)
完成所有操作后,DB看起来像这样:
列车信息:
轴:
转向架:
现在有了下面的信息,它就形成了火车的形状。
现在我通过选择轴的数量来制作这个形状,并将它们转成一个圆圈。 我通过选择轴表来设置距离,并使用margin-left。
现在。需要添加的实际物品的轴距分别为1000-4000。因此,当我补充说,如果它成型,火车将是巨大的。
所以我想,(但不知道它是否可行)而不是将最终结果距离设置为轴距。但随着转向架的数量。
因此,轴1和2的转向架编号为1.我希望转向架编号1位于左侧。
第3轴和第4轴的转向架编号为2.我希望在数字1旁边有200px的那些
第5轴和第6轴的转向架编号为3.我希望在数字2旁边有200px。等等。
这是end_results如何使其成形:
<div id="axle_position2">
<?php
foreach($show_axle as $axlefigure){ ?>
<div style="margin-left:<?php echo $axlefigure['distance'];?>px;">
<?php echo $axlefigure['axle'] ?>
</div>
<?php
}
?>
</div>
它所做的功能只是一个:SELECT * FROM轴,其中train_id = train_id
编辑:
这是一个例子:
答案 0 :(得分:0)
有很多方法可以解决这个问题。这是一个可能的解决方案:
由于车轴之间的距离不再重要(在评论中指定),请关注转向架。像这样选择转向架及其轴:
SELECT bogie_nr, GROUP_CONCAT(axle_id) AS axles
FROM `bogie`
WHERE train_id = 17
GROUP BY bogie_nr
此选择将返回转向架的编号,以及该特定转向架中以轴为单位的逗号分隔列表。你唯一要做的就是像你一样遍历结果,并用逗号分隔axles
字符串。
最后,要显示结果,请将轴包裹在转向架内并适当添加样式。这样的事情:($bogies
将是上面查询的结果集)
<?php foreach($bogies as $bogie) { ?>
<div class="bogie" id="bogie<?php echo $bogie["bogie_nr"]; ?>">
<?php
$axles = explode(",", $bogie["axles"]);
foreach($axles as $axle) {
?>
<div class="axle"><?php echo $axle; ?></div>
<?php } ?>
</div>
<?php } ?>
我没有添加样式以使其更清晰,但我的想法是.bogie
类将具有200px的margin-left
(将其与下一个转向架),.axle
类将包含您要添加的margin-left
。