我的数据库中有一个名为ts_rounds的表,其结构如下
round | current
===============
P | 0
1 | 1
2 | 0
3 | 0
4 | 0
我试图在两种不同的条件下回应某种<div>
安排:
一个当前值为1,其余为0
所有当前为0,超过一个当前值为1
一旦满足条件,我就要打破if语句。
这是我的代码到目前为止,第一个条件已经满足,但我遇到第二个问题。
<div id="timeline">
<?php
$sql = "SELECT * from ts_rounds";
$result = $pdo->query($sql);
foreach ($result as $row)
{
if ($row["round"] == "P" && $row["current"] == "1") {
echo
'
<div id="r0" class="circle">
<h3>P</h3>
</div>
<div id="r1" class="circle_small"><h3>1</h3></div>
<div id="r2" class="circle_small"><h3>2</h3></div>
<div id="r3" class="circle_small"><h3>3</h3></div>
<div id="r4" class="circle_small"><h3>4</h3></div>
<div id="r5" class="circle_small"><h3>A</h3></div>
<hr id="line">
';
}
else if ($row["round"] == "1" && $row["current"] == "1") {
echo
'
<div id="r0" class="circle_small">
<h3>P</h3>
</div>
<div id="r1" class="circle"><h3>1</h3></div>
<div id="r2" class="circle_small"><h3>2</h3></div>
<div id="r3" class="circle_small"><h3>3</h3></div>
<div id="r4" class="circle_small"><h3>4</h3></div>
<div id="r5" class="circle_small"><h3>A</h3></div>
<hr id="line">
';
}
else if ($row["round"] == "2" && $row["current"] == "1") {
echo
'
<div id="r0" class="circle_small">
<h3>P</h3>
</div>
<div id="r1" class="circle_small"><h3>1</h3></div>
<div id="r2" class="circle"><h3>2</h3></div>
<div id="r3" class="circle_small"><h3>3</h3></div>
<div id="r4" class="circle_small"><h3>4</h3></div>
<div id="r5" class="circle_small"><h3>A</h3></div>
<hr id="line">
';
}
else if ($row["round"] == "3" && $row["current"] == "1") {
echo
'
<div id="r0" class="circle_small">
<h3>P</h3>
</div>
<div id="r1" class="circle_small"><h3>1</h3></div>
<div id="r2" class="circle_small"><h3>2</h3></div>
<div id="r3" class="circle"><h3>3</h3></div>
<div id="r4" class="circle_small"><h3>4</h3></div>
<div id="r5" class="circle_small"><h3>A</h3></div>
<hr id="line">
';
}
else if ($row["round"] == "4" && $row["current"] == "1") {
echo
'
<div id="r0" class="circle_small">
<h3>P</h3>
</div>
<div id="r1" class="circle_small"><h3>1</h3></div>
<div id="r2" class="circle_small"><h3>2</h3></div>
<div id="r3" class="circle_small"><h3>3</h3></div>
<div id="r4" class="circle"><h3>4</h3></div>
<div id="r5" class="circle_small"><h3>A</h3></div>
<hr id="line">
</div>';
}
else if ($row["round"] == "A" && $row["current"] == "1") {
echo
'
<div id="r0" class="circle_small">
<h3>P</h3>
</div>
<div id="r1" class="circle_small"><h3>1</h3></div>
<div id="r2" class="circle_small"><h3>2</h3></div>
<div id="r3" class="circle_small"><h3>3</h3></div>
<div id="r4" class="circle_small"><h3>4</h3></div>
<div id="r5" class="circle"><h3>A</h3></div>
<hr id="line">
';
}
else {
$rounds = '
<div id="r0" class="circle_small">
<h3>P</h3>
</div>
<div id="r1" class="circle_small"><h3>1</h3></div>
<div id="r2" class="circle_small"><h3>2</h3></div>
<div id="r3" class="circle_small"><h3>3</h3></div>
<div id="r4" class="circle_small"><h3>4</h3></div>
<div id="r5" class="circle_small"><h3>A</h3></div>
<hr id="line">
';
}
}
?>
</div>
答案 0 :(得分:1)
高度重复的代码,特别是因为你的html基本上只是在版本之间轻微改变。为什么不更喜欢
$sql = "SELECT current, round FROM yourtable"
$results = array()
while($row = fetch($result)) {
$results[$row['current']][] = $row['round'];
}
那会给你一个数组
0: p, 2, 3, 4
1: 1
从那里输出逻辑变成“我现在输出的0/1值”,以根据需要调整html。无需为每个变体重复html块5次。
答案 1 :(得分:1)
我想你正在寻找的是这些方面的东西:
$circleSize = array ('circle_small', 'circle');
$rounds = '';
foreach ($result as $row) {
switch ($row['round']) {
case 'P':
$rounds .= '<div id="r0" class="'.$circleSize[$row['current']].'"><h3>P</h3></div>';break;
case '1':
$rounds .= '<div id="r1" class="'.$circleSize[$row['current']].'"><h3>1</h3></div>';break;
case '2':
$rounds .= '<div id="r2" class="'.$circleSize[$row['current']].'"><h3>2</h3></div>';break;
case '3':
$rounds .= '<div id="r3" class="'.$circleSize[$row['current']].'"><h3>3</h3></div>';break;
case '4':
$rounds .= '<div id="r4" class="'.$circleSize[$row['current']].'"><h3>4</h3></div>';break;
case 'A':
$rounds .= '<div id="r5" class="'.$circleSize[$row['current']].'"><h3>A</h3></div>';break;
}
}
echo $rounds;