简体   繁体   English

PHP:通过while()使用tr和td

[英]PHP: working with tr and td with while()

<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<?php 
while ($pF = mysql_fetch_array($stringVisits)) { 
?>
<td class="viewercell" style="color: #CCC; font-size: 10px;">
<?php 
echo "<a href='profil.php?id=".$BuID."'>";
echo "<img style='margin-right: 5px; width: 61px; height: 80px;'";

if (checkStatus($BuID) == 1) {
    echo 'class="onlineBorder" ';
} else {
    echo 'class="image-xxsmall-border" ';
}
echo " src='images/profilePhoto/thumbs/";
if (!empty($getByProfile["photo_thumb"])) {
    echo $getByProfile["photo_thumb"];
} else {
    echo "noPhoto_thumb.jpg";
}
echo "'>";
?>
</a>
</td>

<?php } ?>
</tr>
</table>

This is what i have right now it displays the visiter´s profileimage. 这就是我现在所拥有的,它显示了访客的个人资料图像。 Now i would like to have their name under the image too.. but then i need to create another <tr> after this one, and add their name in each <td> . 现在,我也想在图像下显示它们的名称。.但是,我需要在此图像之后创建另一个<tr> ,并将它们的名称添加到每个<td> But how can i do that, if i have this while? 但是,如果我有一段时间,该怎么办? Should i run another while, to get the names or can i do something smart with this? 我应该再运行一段时间以获取名称,还是可以对此做一些聪明的事情?

this might not look nice but it should work why do you want 2 loops? 这可能看起来不太好,但是应该可以工作,为什么要2个循环?

<?php
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" >";
while($pF = mysql_fetch_array($stringVisits)){
echo "
<tr>
<td class="viewercell" style="color: #CCC; font-size: 10px;">
   <a href='profil.php?id=".$BuID."'> <img /> </a>
</td>
</tr>
<tr><td> " . $getByProfile['username'] . " </td></tr>";

}
echo "</table>";
?>

Why not just stick the name in the same cell as the image? 为什么不将名称与图像放在同一单元格中? After you close the image tag, just echo $getByProfile["username"], or whatever? 关闭图像标签后,只需回显$ getByProfile [“ username”],还是其他?

<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<?php 
while($pF = mysql_fetch_array($stringVisits)){ 
?>
<td class="viewercell" style="color: #CCC; font-size: 10px;">
<?php 
echo "<a href='profil.php?id=".$BuID."'>";
echo "<img style='margin-right: 5px; width: 61px; height: 80px;'";

                          if(checkStatus($BuID) == 1){
                          echo 'class="onlineBorder" ';
                          } else {
                          echo 'class="image-xxsmall-border" ';
                          }
echo " src='images/profilePhoto/thumbs/";
if(!empty($getByProfile["photo_thumb"])) { echo $getByProfile["photo_thumb"]; }else{
echo "noPhoto_thumb.jpg";
}
echo "'><br/>";
?>
</a>
<br/><?php echo $getByProfile['username']; ?>
</td>

<?php } ?>
</tr>
</table>

Here's a way to do it with minimal changes to your existing code: 这是一种对现有代码进行最少更改的方法:

<?php
<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<?php
$names = array();  // ADDITION #1
while($pF = mysql_fetch_array($stringVisits)){ 
    $names[] = // ADDITION #2 - ADD NEW USER NAME HERE;
?>
<td class="viewercell" style="color: #CCC; font-size: 10px;">
<?php 
echo "<a href='profil.php?id=".$BuID."'>";
echo "<img style='margin-right: 5px; width: 61px; height: 80px;'";

                          if(checkStatus($BuID) == 1){
                          echo 'class="onlineBorder" ';
                          } else {
                          echo 'class="image-xxsmall-border" ';
                          }
echo " src='images/profilePhoto/thumbs/";
if(!empty($getByProfile["photo_thumb"])) { echo $getByProfile["photo_thumb"]; }else{
echo "noPhoto_thumb.jpg";
}
echo "'>";
?>
</a>
</td>

<?php }

// ADDITION #3:
echo "</tr>
<tr>";

foreach ($names as $username)
    echo "<td class=\"username\"><p>$username</p></td>";

?>

</tr>
</table>

Also note that the way you had your code, the </tr> was inside the while loop. 还要注意,代码的使用方式</tr>位于while循环内。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM