Ich habe eine Tabelle eingerichtet, wo Auszeichnungen von einer Benutzer-ID verfolgt werden. Es gibt mehrere Datensätze mit derselben Benutzer-ID, aber unterschiedlichen Auszeichnungen.Anzeigen mehrerer Datensätze in einer Zeile mit doppelter Benutzer-ID
Aktuelle Datenbank
+---------+----------+---------------------+
| 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 |
+---------+----------+---------------------+
Der aktuelle Code verwende ich nicht in der Lage, die Datensätze dem Benutzer angezeigt werden soll. Es wird nur ein einziges Ergebnis erhalten. Ich habe versucht, die GROUP BY zu entfernen, aber es muss alle Datensätze in einer Zeile mit den mehreren Ergebnissen beibehalten.
$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>
Hier ist das Ergebnis
Ich hoffe, dass ich das richtig formuliert.
Vielen Dank im Voraus
Danke, ju Was ich gesucht habe <3 – Ryahn