【问题标题】:How to separate result inside loop if last value is different如果最后一个值不同,如何在循环内分离结果
【发布时间】:2018-03-06 10:09:12
【问题描述】:

我想回显表中的所有值,并在与上一个值不同时分开。比如说

table
a
a
b
c
c

result
<div>
a
a
</div>
<div>
b
</div>
<div>
c
c
</div>

目前我正在将最后一个回显值与当前回显值比较,但问题是其中一个值是 else 语句中的回显,这会导致难以计算相同的值。为了清楚起见,如果值更改它与最后一个值不匹配,我将从 db 获取值,但我仍然需要它来回显它,否则将跳过该值。我需要改进我的代码,以便所有相同的值都显示在一个回显中。我希望你明白我的意思。

$sql = "select * from bet_slip";
$result = mysqli_query( $conn, $sql );

if ($result->num_rows > 0) {
    $sql1 = "select * from bet_slip";
    $result1 = mysqli_query( $conn, $sql1 );    
    $row1 = $result1->fetch_assoc();
    $last = $row1["bet_id"];
    echo "<div class='jed'>";
    while($row = $result->fetch_assoc()) {
        $prev = $row["bet_id"];
        if($row["bet_id"] == $prev){
            if($prev == $last)
            {       
                //let's say now value change to c so it will be echo inside else and next c will be echo here
                echo $row["bet"]."</br>";
            }
            else
            {   
                echo "</div><div class='trig'></div></br><div class='jed'>else".$row["bet"]."</br>";
            }
        }
        $last = $row["bet_id"]
    }  
}

【问题讨论】:

  • 你到底为什么要查询两次?
  • 我确实是因为如果已经有匹配项,我首先想要它,但是是的,无论如何它都无济于事

标签: php loops while-loop echo


【解决方案1】:

我认为您可能试图使问题过于复杂化,除非我误解了您的问题。

$sql = "select * from bet_slip";
$result = mysqli_query( $conn, $sql );

$prev = NULL;

while($row = $result->fetch_assoc()) {

    if($row["bet_id"] != $prev) {
        if ( $prev == NULL) {
            echo "<div class='jed'>";
        } else {
            echo "</div><div class='jed'>";
        }
        $prev = $row["bet_id"];
    }

    echo $row["bet"]."</br>";
}  
echo "</div>";

【讨论】:

    猜你喜欢
    • 2012-01-04
    • 2018-06-05
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2020-01-26
    • 2021-10-12
    相关资源
    最近更新 更多