doushi1960 2016-04-28 21:07
浏览 60
已采纳

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.

  • 写回答

4条回答 默认 最新

  • dongyaobo9081 2016-04-28 21:26
    关注

    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>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等