2

我有一个问题,我似乎无法解决问题。

我有一个类似这样的 mySQL 表设置:

userid          date          rating1        rating2

1               5/1/2013      5              5
2               5/1/2013      4              4
3               5/1/2013      3              3
2               5/7/2013      5              5
1               5/7/2013      5              5
3               5/7/2013      2              2

我有我的 php 代码来查询数据:

$con=mysqli_connect("localhost","root","password","db");
$result = mysqli_query($con,"SELECT userid,date,rating1,rating2 FROM db");

但是当我尝试使用以下命令输出到表时:

while($row = mysqli_fetch_array($result))
  {
echo '<table>';
    echo '<thead>';
    echo '<tr>';
        echo '<th>UserID</th>';
        echo '<th>Date</th>';
        echo '<th>First Rating</th>';
        echo '<th>Second Rating</th>';
            echo '</tr>';
    echo '</thead>';
    echo '<tbody>';
    echo '<tr>';
        echo '<td>'.$row['userid'].'</td>';
        echo '<td>'.$row['date'].'</td>';
        echo '<td>'.$row['rating1'].'</td>';
        echo '<td>'.$row['rating2'].'</td>';
            echo '</tr>';
    echo '</tbody>';
 echo '</table>';
  }

它为每个条目输出一个唯一的表。我需要的是每个 UserID Ex 1 个 HTML 表:

UserID 1

Date          First Rating        Second Rating

5/1/2013      5                   5
5/7/2013      5                   5



UserID 2

Date          First Rating        Second Rating

5/1/2013      4                   4
5/7/2013      5                   5



UserID 3

Date          First Rating        Second Rating

5/1/2013      3                   3
5/7/2013      2                   2

老实说,我被困住了...提前感谢您的帮助!

4

3 回答 3

1
$con=mysqli_connect("localhost","root","password","db");
$result = mysqli_query($con,"SELECT userid,date,rating1,rating2 FROM db ORDER BY userid");
$id = -1;

while($row = mysqli_fetch_array($result)) {
    if ($id != -1 && $id != $row['userid']) {
        echo '</tbody>';
        echo '</table>';
    }

    if ($id != $row['userid']) {
        echo '<table>';
        echo '<thead>';
        echo '<tr>';
        echo '<th>UserID</th>';
        echo '<th>Date</th>';
        echo '<th>First Rating</th>';
        echo '<th>Second Rating</th>';
        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        $id = $row['userid'];
    }

    echo '<tr>';
    echo '<td>'.$row['userid'].'</td>';
    echo '<td>'.$row['date'].'</td>';
    echo '<td>'.$row['rating1'].'</td>';
    echo '<td>'.$row['rating2'].'</td>';
    echo '</tr>';
 }

echo '</tbody>';
echo '</table>';
于 2013-08-16T19:47:31.917 回答
0

像这样的东西?

echo '<table>';
echo '<thead>';
echo '<tr>';
    echo '<th>UserID</th>';
    echo '<th>Date</th>';
    echo '<th>First Rating</th>';
    echo '<th>Second Rating</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';

while($row = mysqli_fetch_array($result))
{
    echo '<tr>';
        echo '<td>'.$row['userid'].'</td>';
        echo '<td>'.$row['date'].'</td>';
        echo '<td>'.$row['rating1'].'</td>';
        echo '<td>'.$row['rating2'].'</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';
于 2013-08-16T19:36:36.047 回答
0

你需要类似的东西:

echo '<table>';
echo '<thead>';
echo '<tr>';
    echo '<th>UserID</th>';
    echo '<th>Date</th>';
    echo '<th>First Rating</th>';
    echo '<th>Second Rating</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
$old_id = 0;
while($row = mysqli_fetch_array($result))
{
    if( $old_id != $row['userid'] ) {
          echo "<tr><td colspan=3>".$row['userid']."</td>";
          $old_id = $row['userid'];
    } else {
        echo "<tr>";
        echo '<td>'.$row['userid'].'</td>';
        echo '<td>'.$row['date'].'</td>';
        echo '<td>'.$row['rating1'].'</td>';
        echo '<td>'.$row['rating2'].'</td>';
    }
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';
于 2013-08-16T19:42:34.070 回答