PHP:在两个div中拆分mySQLi数组?

I'm currently working on a page that calls a mySQL database to populate a list of members. However, I need that list to be split into two equal parts, so that half can float to the left and half to the right. However, I have beat this horse to death and still cannot figure out how to split the array.

Here's what I have currently:

<div class="holder">
    <?php
    $members = $db->query('SELECT * FROM tableContacts ORDER BY lastName ASC');
    $rowcount = mysqli_num_rows($members);
    if ( $rowcount > 0 ) { ?>
        <div class="members-left">
            <ul class="members">
                <?php while ($row = $members->fetch_assoc()) { ?>
                    <li class="member">
                        //SOME CONTENT HERE
                    </li>
                <?php } ?>
            </ul>
        </div>
    <?php } ?>
</div>

However, I want the output to look something like this (let's say my table has 10 members):

<div class="holder">
    <!--output first half of members from table: -->
    <div class="members-left">
        <ul class="members">
            <li class="member">...</li>
            <li class="member">...</li>
            <li class="member">...</li>
            <li class="member">...</li>
            <li class="member">...</li>
        </ul>
    </div>

    <!--output second half of members from table: -->
    <div class="members-right">
        <ul class="members">
            <li class="member">...</li>
            <li class="member">...</li>
            <li class="member">...</li>
            <li class="member">...</li>
            <li class="member">...</li>
        </ul>
    </div>

</div>

I've tried setting counters and using things like if($i <= $rowcount/2), but to no avail. Any help would be greatly appreciated—I'm very new to mySQL and have limited knowledge of PHP, so this one has me stumped.

add a control variable like "$i". add +1 to $i every loop. and check if $i reached half of number of rows. if reached close ul and div and open new div and ul and set $i to 0

  <div class="holder">
    <?php
    $members = $db->query('SELECT * FROM tableContacts ORDER BY lastName ASC');
    $rowcount = mysqli_num_rows($members);
    $i=0;
    if ( $rowcount > 0 ) { ?>
        <div class="members-right">
            <ul class="members">
                <?php while ($row = $members->fetch_assoc()) { ?>
                    <li class="member">
                        //SOME CONTENT HERE
                    </li>
                <?php
                $i++;
                 if($i>=($rowcount/2)){
                 echo '</ul></div>
<div class="members-right">
        <ul class="members">'; 
$i=0;
                    }

                   } ?>
            </ul>
        </div>
    <?php } ?>
</div>

You could use a for loop for the first half and just finish the second half with a while loop that goes until there are no more results.

First half:

for($i = 0; $i <= $rowcount/2 && $row = $members->fetch_assoc(); $i++)

Second half

while ($row = $members->fetch_assoc())

Example with HTML

<div class="members-left">
    <ul class="members">
        <?php for($i = 0; $i <= $rowcount/2 && $row = $members->fetch_assoc(); $i++) { ?>
            <li class="member">
                // do something with $row
            </li>
        <?php } ?>
    </ul>
</div>
<div class="members-right">
    <ul class="members">
        <?php while ($row = $members->fetch_assoc()) { ?>
            <li class="member">
                // do something with $row
            </li>
        <?php } ?>
    </ul>
</div>

I would recommend you to make 2 arrays of your members and then print them out. The advantage is you will have more control of the members and your code will be more readable for later use;

<?php 
$i =0;
while ($row = $members->fetch_assoc()) {
 if($i % 2 == 0)
    {
      $right_members[] = $row;
    }
 else
    {
    $left_members[] = $row;
$i++;
} 
echo '
<div class="members-right">
   <ul class="members">';
foreach($right members as $r_member){
echo '<li class="member">...</li>';
}
echo '
   </ul>
</div>';

//SAME WITH LEFT MEMBERS 
?>

Having a counter was an idea, I will not debate on having model logic in view ;)

well, a solution would be :

<div class="holder">
    <div class="members-column">
        <ul class="members">
        <?php
        $members = $db->query('SELECT * FROM tableContacts ORDER BY lastName ASC');
        $rowcount = mysqli_num_rows($members);
        $i = 0;
        while ($row = $members->fetch_assoc()) {
        ?>
            <li class="member">
                //SOME CONTENT HERE
            </li>

        <?
        // Check if current row is the 'middle count', creating a new column
        if ($i === ceil($rowcount / 2)) : ?>
            </ul>
        </div>
        <div class="members-column">
            <ul class="members">
        <?php endif; ?>
        <?php 
            $i++;
        }
        ?>
        </ul>
    </div>
</div>