Wątek zablokowany 2014-12-22 18:05 przez dzek69.

Grupowanie rekordów MySQL przy wyświetlaniu

0

A więc tak jak w temacie - mam problem z grupowaniem wyników z bazy:

<table id="colors" class="bhrtable">
	<thead>
	<tr><th>Gracze</th><th>Przedmiot</th><th>Przeciwnik</th><th>Mapa</th><th>Data</th></tr>
	</thead>
	<tbody>
	<?php
	define('ILOSC_WYNIKOW_NA_STRONIE', 20);
	$SQL = "SELECT SQL_CALC_FOUND_ROWS * 
       FROM TABELA WHERE item_klasa='legendary' OR item_klasa='heroic'
       ORDER BY id DESC 
       LIMIT ".mysql_escape_string((int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
	
	$licznik = 0;
	   $RES = mysql_query($SQL) or die("Query failed");
while ($row = mysql_fetch_array($RES)) {
$licznik++;
 $nicki = explode(", ", $row['gracze_nicki']);
$outy = explode(", ", $row['gracze_img']);
echo"<tr><td style='max-width: 160px;'><center>";
for($e = 0; $e < count($nicki); $e++){
if($outy[$e]=='/img/rip1.gif'){
$outy[$e] = '/obrazki/postacie//spec/invisiblem.gif';
$nicki[$e] = ''.$nicki[$e].'<br /><i>Zabity/(a)</i>';
}
$nicks =  str_replace(",", "", $nicki[$e]); 
echo"<div style='background-image: url(http://www.HOST.pl".$outy[$e]."); width: 32px; height: 48px; float: left;' ctip='t_other' tip='".$nicks."' ></div></center>";
}
	?>
		</td><td><img class="item" id="<?=$row['item_klasa']?>" ctip="t_item" tip="<?=$row['item_tip']?>" src="http://img.HOST.pl/obrazki/itemy/<?=$row['item_img']?>"></td><td style="max-width: 250px;"><small><?=$row['przeciwnik']?></small></td><td style="max-width: 200px;"><small><?=$row['mapa']?></small></td><td><?=$row['data']?></td></tr>
		<?php
		}
		?>
		</tbody>
</table>

Jest to skrypt wyświetlający zdobycze z walki w pewnej grze, jak pewnie można się domyślić - zdobyczy może być kilka, więc zamiast wyświetlać je osobno (jak w kodzie powyżej) wypadałoby je pogrupować. Chciałbym aby odbywało się to poprzez przyrównanie do kolumn "gracze_nicki", "mapa" oraz "ip".
Warunek musiałby wyglądać tak:

If(gracze_nicki == gracze_nicki && mapa==mapa && ip==ip){
wyświetl kilka przedmiotów w jednym polu TD tabeli <td><img class="item" id="<?=$row['item_klasa']?>" ctip="t_item" tip="<?=$row['item_tip']?>" src="http://img.HOST.pl/obrazki/itemy/<?=$row['item_img']?>"></td>   ( <--- ten kod wyświetla tylko jeden przedmiot).
} else {
wyświetl jeden przedmiot w TD
}
 

Szczerze mówiąc nie wiem zupełnie jak się za to zabrać, głupio i chaotycznie to wytłumaczyłem, ale myślę że ktoś zrozumie :P
Pozdro.

2

Grupowanie wyników z bazy powinno być robione na poziomie bazy, nie PHP.

0

W takim razie jak mogę to zrobic? :(

1

Grupować rekordy w MYSQL ? Za pomocą GROUP BY.

1 użytkowników online, w tym zalogowanych: 0, gości: 1