簡體   English   中英

PHP:如果計數器為奇數,則為備用表列

[英]PHP : Alternate Table Column if counter is odd

我正在生成接近聯系人列表的內容。 我希望我的聯系人根據位置而彼此相鄰。

例:

聯絡人

位置0 | 位置1

位置2 | 位置3

我設法將結果放入表中,但是由於某種原因,它們以這種方式加載屏幕快照 ,而test1在位置0處,我希望Test Test在左列,而Test2 Test2在右列。

我的代碼:

<?php
$connection = connectToSql();
$query = "SELECT * FROM visitorsystem.employee";
$result = mysqli_query($connection,$query)
          or die("Error in query: ". mysqli_error($connection));
?>
<form action="#" method="POST"> 
    <table class="table" style = "margin-top:50px">
        <?php 
        $i=0;
        while ($row = mysqli_fetch_assoc($result)){ 
            echo "$i";
            if($i % 2 == 0  &&  $row != count($result)){ 
                ?>
                <tr>
                    <td>
                        <button type="button" class="btn btn-link"  style="width:100%;">
                            <h4> <?php echo "$row[name]". " " . "$row[surname]";?> </h4>
                        </button>
                    </td>
                    <?php
            }else
                ?> 
                <td>
                    <button type="button" class="btn btn-link"  style="width:100%;">
                        <h4> <?php echo "$row[name]". " " . "$row[surname]";?> </h4>
                    </button>
                </td>
            </tr>
            <?php
            $i++;
        }
        ?>
echo '<tr>';
while ($row = mysqli_fetch_assoc($result)){ 
    ?>
    <td>
        <button type="button" class="btn btn-link"  style="width:100%;">
            <h4> <?php echo "$row[name]". " " . "$row[surname]";?> </h4>
        </button>
    </td>
    <?php
    $i++;
    if($i % 2 == 0){
        echo '</tr><tr>';
    }
}
echo '</tr>';

始終回顯相同的<td> ,並每2個條目更改行。

不要為此使用PHP,而應使用CSS之類的東西。

tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}

考慮到結果集中出現奇數計數的可能性,僅使用模數來生成表結構並不是一種可靠的方法。 當數據不足時,您需要一些完成行的方法。

這是通過我自己的示例數據提供的一個選項,無論數據是偶數還是奇數,它都會“擺正”表:( PHP Demo

$rows=[
    ['name'=>'Bob','surname'=>'Evans'],
    ['name'=>'John','surname'=>'Doe'],
    ['name'=>'Sue','surname'=>'Heck'],
    ['name'=>'Kevin','surname'=>'James'],    
    ['name'=>'James','surname'=>'Brown']
];
$newtr=true;
foreach($rows as $row){
    if($newtr){echo "<tr>";}  // start a new row
    echo "<td>";
        echo "<button type=\"button\" class=\"btn btn-link\" style=\"width:100%;\">";
            echo "<h4> {$row['name']} {$row['surname']} </h4>";
        echo "</button>";
    echo "</td>";
    if(!$newtr){echo "</tr>";}  // end a row
    $newtr=!$newtr;  // toggle value
}
if(!$newtr){echo "<td></td></tr>";} // if odd count in resultset, add a phantom cell and end row

輸出:

<tr>
    <td>
        <button type="button" class="btn btn-link" style="width:100%;">
            <h4> Bob Evans </h4>
        </button>
    </td>
    <td>
        <button type="button" class="btn btn-link" style="width:100%;">
            <h4> John Doe </h4>
        </button>
    </td>
</tr>
<tr>
    <td>
        <button type="button" class="btn btn-link" style="width:100%;">
            <h4> Sue Heck </h4>
        </button>
    </td>
    <td>
        <button type="button" class="btn btn-link" style="width:100%;">
            <h4> Kevin James </h4>
        </button>
    </td>
</tr>
<tr>
    <td>
        <button type="button" class="btn btn-link" style="width:100%;">
            <h4> James Brown </h4>
        </button>
    </td>
    <td></td>
</tr>

如果您特別想使用模數技術,則其功能將與上述相同:(假設結果集中至少有一行)

代碼:( 演示

$i=0;
echo "<tr>";
foreach($rows as $row){
    if($i>0 && $i%2==0){echo "</tr><tr>";}
    echo "<td>";
        echo "<button type=\"button\" class=\"btn btn-link\" style=\"width:100%;\">";
            echo "<h4> {$row['name']} {$row['surname']} </h4>";
        echo "</button>";
    echo "</td>";
    ++$i;
}
if($i%2){echo "<td></td>";} // if odd count in resultset, add a phantom cell and end row
echo '</tr>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM