每行检索后换行

时间:2014-09-03 11:40:21

标签: php

我需要在每行检索后添加换行符; 我试图以各种可能的方式添加
..没有运气..

while ($line = mysql_fetch_array($result))
    {
        ?>  
                <style>
                .whiteBackground { background-color:#F5ECCE;float:left;}
                .grayBackground { background-color:#CED8F6; float:right;}
                .date { font-size:10px; color:#627d79;float:right}
                </style>
        <?php

        $sender=$line["sender"];
        $classy=($sender == $uid)? 'whiteBackground': 'grayBackground';
        $q=mysql_query("select * from users where u_id='$sender'");
        $row=mysql_fetch_array($q);
        $receiver=$row['firstname'];
        //if($receiver!= $line["receiver"])
        $msg = $msg . "<tr class='$classy'>" .
            "<td>" . $receiver . ":&nbsp;</td>" .
            "<td>" . $line["msg"] . "</td>"."<td class='date'>" . $line["chattime"] . "</td></tr>";

    }
    $msg=$msg . "</table>";



    echo $msg;

我需要在每个发件人+ msg +时间之后添加一个休息时间//就像在通常的聊天中一样。

5 个答案:

答案 0 :(得分:1)

您的问题来自float声明。它们在您的代码中没用:

.whiteBackground { background-color:#F5ECCE;float:left;}
.grayBackground { background-color:#CED8F6; float:right;}
.date { font-size:10px; color:#627d79;float:right}

删除它们,它将按预期工作。 如果您使用<table><tr>,则代码中不需要它们。 <tr>的默认行为是每次添加时都会创建一个新的“行”,但添加float就会破坏此行为。

另外,按照 @bulforce 建议在循环之前移动你的CSS:你的代码会在你的文档中多次添加消息时添加它(如果有10条消息,css声明将被添加10次)。

<style type="text/css">
    .whiteBackground { background-color:#F5ECCE; }
    .grayBackground { background-color:#CED8F6; }
    .date { font-size:10px; color:#627d79; }
</style>
<?php

while ($line = mysql_fetch_array($result))
{
    // ...
}

?>  

答案 1 :(得分:-1)

尝试在while循环中添加<tr><td colspan="3">&nbsp;</td></tr>之后的</tr>

答案 2 :(得分:-1)

首先考虑在循环之前移动css声明,没有必要将它放在循环体中。

第二个循环中的第二个查询也应该在循环之前移动并稍微重做。

现在问题,一个选项就是用div和span改变表格......就像这样:

<div class="message-row">
 <span class="message-user">Name</span>
 <span class="message-text">Message</span>
</div>

然后像以前一样设置样式,并将margin-bottom: 15px;添加到消息行定义中。

答案 3 :(得分:-1)

   before while

   $msg="<table>"; 

   Inside while 

   $msg.= "<tr class='$classy'>"  in place of  $msg = $msg . "<tr class='$classy'>" 

   Will work for you.

答案 4 :(得分:-1)

我通过用div标签替换表标签来解决它。 Thnku @bulforce;现在我将完全按照您的推荐。

 $msg="<div>";
     $date_temp="nil";
    while ($line = mysql_fetch_array($result))
    {
        ?>  
                <style>
                .whiteBackground { background-color:#F5ECCE;float:left;}
                .grayBackground { background-color:#CED8F6; float:right;}
                .date { font-size:10px; color:#627d79;float:right}
                </style>
        <?php

        $sender=$line["sender"];
        $classy=($sender == $uid)? 'whiteBackground': 'grayBackground';
        $q=mysql_query("select * from users where u_id='$sender'");
        $row=mysql_fetch_array($q);
        $receiver=$row['firstname'];
        //if($receiver!= $line["receiver"])
        /*if($date_temp!=$line["chatdate"]){
            $date_temp=$line["chatdate"];
            $msg=$msg.$line["chatdate"];
        }*/
        $msg = $msg . "<div class='$classy'>" . $receiver.":&nbsp;" . $line["msg"] ."<div class='date'>" . $line["chattime"] . "</div></div></br></br>";

    }
    $msg=$msg . "</div>";



    echo $msg;