PHP表。将多行显示为一行

时间:2014-04-08 15:50:44

标签: php html-table

这是我的代码:

    <table border="2px solid #FFF" width="100%">
            <tr>
                <td width="50%"><Center>Username:</Center><br /></td>
                <td width="50%"><center>Numebr Of Warnings:</center><br /></td>
            </tr>
            </table>
            <?
            $query = mysql_query("SELECT * FROM warnings");
            $numrows = mysql_num_rows($query);
                if($numrows != "0"){
                   while($row = mysql_fetch_assoc($query)){
                        $warned = $row['username'];
                        $by = $row['by'];
                        $sql = mysql_query("SELECT * FROM warnings WHERE username='$warned'");
                        $warns = mysql_num_rows($sql);
                        ?>
                            <table border="2px solid #FFF" width="100%">
                                <tr>
                                    <td width="50%"><center><b><?php echo $warned; ?></b></center></td>
                                    <td width="50%"><center><b><?php echo $warns; ?></center></b></td>
                                </tr>
                            </table>
                        <?php
                   }
                }
                else
                    echo "No Currently Warned Users";
                ?>

            <hr />

结果如下:enter image description here

我怎样才能这样做,而不是为用户显示2个结果Mrg .....我只是希望它显示一个带有数字或行的结果。

帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以在查询中使用DISTINCT以避免结果中出现重复的行:

SELECT DISTINCT username, `by` FROM warnings

答案 1 :(得分:0)

使用mysql_feth_array

更改mysql_fetch_assoc

您以双记录获得用户身份。然后为每个用户提供2行

检查它的最佳方法是在代码中添加伪点。

$query = mysql_query("SELECT * FROM warnings");
$arr=array();
while($row = mysql_fetch_assoc($query))
{
    $arr[]=$row;
}
echo "<pre>";
print_r($arr);    
echo "</pre>";
exit;

这里检查$ arr是否有双重条目。然后用mysql_fetch_array更改mysql_fetch_assoc并再试一次

答案 2 :(得分:0)

这是表格

(通过ID,用户名,日期)

A1,1,U1,日期

A2,2,U2,日期

a3,3,U2,日期

a4,4,U2,日期

这是php代码

<?php
$conn = mysqli_connect("localhost","username","password");
mysqli_select_db($conn,"dbname");

$warns = mysqli_query($conn,"select username, count(username) as warncount  from dtest.warnings W group by username");

while($line = mysqli_fetch_array($warns))
{
    echo $line['username']." has ".$line['warncount']. " warns <br/> ";
}
?>