PHP成员页面向下延伸到新行

时间:2014-03-07 06:15:42

标签: php

我的网站上有一个显示成员目录的页面。我希望成员在每行列出3,然后才能进入下一行。我拥有的代码,第一行是这样做的 - 但是在第二行,它全部在一行而且没有进行。

个人资料显示如下:

uuu

uuuuuuuuuuuuuuuuuuuuuuuuuuu

当他们应该这样做时:

uuu

uuu

uuu

uuu

这就是我的代码:

<table>
  <tr>
    <td colspan="4"><h1>Member Directory</h1></td></tr>
  <tr>
    <td>
       <?php 
          while($row = mysql_fetch_array($result)) {

            if (empty($row['profile']) === false){
                echo '<img src="', $row['profile'], ' "width="125">';   
            } else {
                echo '<img src="../../images/template/avatar.png">';
            }


            echo '</td><td>';

            echo '<a href="' . $row['username'] . '">' . ucfirst($row['username']) . '</a><br />';
            echo "Location: " . $row['location'] . "<br />";


            echo '</td><td>';
            if ($i++ == 2) echo '</td></tr><tr><td>';
          }
       ?>
    </td>
  </tr>
</table>

非常感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:0)

使用

if (++$i % 3 == 0) echo '</td></tr><tr><td>';

说明:

首先++$i首先递增$i,然后在接下来的任何内容中使用它,这样可以获得更易读的代码。

其次,%modulus,这意味着它会从$i中减去3,直到不再可能为止。例如。 9 % 3 == 011 % 3 == 2等等。这意味着我们知道,只要$i % 3等于0,我们就会打印3行。

答案 1 :(得分:0)

尝试这个

    <table>
        <tr>
            <td colspan="4"><h1>Member Directory</h1></td>
        </tr>



      <?php 
        $count=0;
        while($row = mysql_fetch_array($result))
        {
            $count+=1;
            if($count%3==1)
            {
                echo '<tr>';        
            }           
                echo '<td>';
                            if (empty($row['profile']) === false){
                                echo '<img src="', $row['profile'], ' "width="125">';   
                            } else {
                                echo '<img src="../../images/template/avatar.png">';
                            }
                echo '</td>';

                echo '<td>';
                echo '<a href="' . $row['username'] . '">' . ucfirst($row['username']) . '</a><br />';
                echo "Location: " . $row['location'] . "<br />";
                echo '</td>';


            if($count%3==0)
            {
                echo '</tr>';       
            }       

        }
        if($count%3!=0)
        {
                echo '</tr>';       
        }   
    ?>
</table>

答案 2 :(得分:0)

您没有重置$i的值,因此它不断增加;另一个问题是,如果你只有七个项目,那么最后一行应该有四个空单元格。因此,循环条件需要使用行完成状态进行扩充:

$i = 0;
while (($row = mysql_fetch_array($result)) !== false || $i != 0) {
    if ($i == 0) {
        echo '<tr>'; // start of new row
    }

    if ($row !== false) {
        echo '<td>';
        if (empty($row['profile'])) {
            echo '<img src="', $row['profile'], ' "width="125">';   
        } else {
            echo '<img src="../../images/template/avatar.png">';
        }
        echo '</td><td>';
        echo '<a href="' . $row['username'] . '">' . ucfirst($row['username']) . '</a><br />';
        echo "Location: " . $row['location'];
        echo '</td>';
    } else {
        echo '<td></td><td></td>'; // no more data
    }

    $i = ($i + 1) % 3; // advance

    if ($i == 0) {
        echo '</tr>'; // end of the row
    }
}