私は、賞がユーザーIDによって追跡される場所をテーブル設定しました。同じユーザーIDを持つ複数のレコードがありますが、異なる賞があります。重複したユーザーIDを持つ1つの行に複数のレコードを表示
現在のデータベース
+---------+----------+---------------------+
| user_id | award_id | award_date |
+---------+----------+---------------------+
| 1 | 26 | 2016-08-20 00:00:00 |
| 1 | 27 | NULL |
| 1 | 28 | NULL |
| 1 | 29 | NULL |
| 1 | 30 | NULL |
| 1 | 31 | NULL |
| 2 | 26 | 2016-08-19 00:00:00 |
| 2 | 2 | NULL |
| 3 | 36 | NULL |
| 3 | 2 | NULL |
| 4 | 1 | NULL |
| 4 | 2 | NULL |
| 5 | 1 | NULL |
| 5 | 2 | NULL |
| 6 | 6 | 2016-08-23 23:06:48 |
| 6 | 1 | NULL |
| 2 | 20 | NULL |
| 3 | 20 | 2016-08-18 00:00:00 |
| 4 | 20 | NULL |
| 5 | 20 | NULL |
+---------+----------+---------------------+
は、私が使用しています現在のコードは、ユーザーにレコードを表示することができません。結果は1つだけです。私はGROUP BYを削除しようとしましたが、複数の結果で1つの行にすべてのレコードを保持する必要があります。
$sql = "SELECT * FROM awards ORDER BY id ASC";
$results = mysqli_query($con, $sql);
$awards = array();
while ($row = mysqli_fetch_assoc($results))
{
$awards[] = $row;
}
$asql = "SELECT * FROM (awards, rosters)
inner join ranks on ranks.id=rosters.rankid
inner join user_awards on user_awards.award_id=awards.id
where rosters.ruser_id = user_awards.user_id AND rosters.rplatoon='viking'
GROUP BY rosters.rname
ORDER BY rosters.rname";
$aresults = mysqli_query($con, $asql);
if(!$aresults and $mysqliDebug) {
echo "<p>There was an error in query:". $aresults."</p>";
echo $con->error;
}
$uawards = array();
while ($arow = mysqli_fetch_assoc($aresults))
{
$uawards[] = $arow;
}
?>
<table >
<thead>
<tr>
<th>Rank/Name</th>
<?php foreach ($awards as $award)
{
if ($award['category'] == 'medal')
{
echo '<th style="text-align:center;">
<div class="tooltip4">
<div id="award-'. $award['image_name'] . '3"> </div>
<span class="tooltiptext4">'. $award['award_name'] .'</span>
</div>
</th>';
}
}
?>
</tr>
</thead>
<tbody>
<?php foreach ($uawards as $users)
{
echo '<tr><td>' . $users['name'] . ' '. $users['rname'] . '</td>';
$medal = 0;
foreach ($awards as $award)
{
if ($award['category'] == 'medal')
{
if ($award['id'] == $users['award_id'])
{
$awardid = $users['award_id'];
if ($awardid == 26)
{
echo '<td>True</td>';
}
elseif ($awardid = 27)
{
echo '<td>True</td>';
}
elseif ($awardid = 28)
{
echo '<td>True</td>';
}
elseif ($awardid = 29)
{
echo '<td>True</td>';
}
elseif ($awardid = 30)
{
echo '<td>True</td>';
}
elseif ($awardid = 31)
{
echo '<td>True</td>';
}
elseif ($awardid = 32)
{
echo '<td>True</td>';
}
elseif ($awardid = 33)
{
echo '<td>True</td>';
}
elseif ($awardid = 34)
{
echo '<td>True</td>';
}
elseif ($awardid = 35)
{
echo '<td>True</td>';
}
elseif ($awardid = 36)
{
echo '<td>True</td>';
}
elseif ($awardid = 37)
{
echo '<td>True</td>';
}
elseif ($awardid = 38)
{
echo '<td>True</td>';
}
elseif ($awardid = 39)
{
echo '<td>True</td>';
}
elseif ($awardid = 40)
{
echo '<td>True</td>';
}
elseif (!$awardid)
{
echo '<td>True</td>';
}
}
else
{
echo '<td>False</td>';
}
}
}
echo '</tr>';
}
?>
</tbody>
</table>
はここで結果
私はこれを正しく文言を願っています。予め
おかげ
ありがとうございます私が探していたもの<3 – Ryahn