Zliczanie unikalnych wartości z bazy MySQL i PHP

Zbieram pewne dane, które zapisywane są później do bay danych. Dane w tabeli powtarzają się, są to po prostu marki laptopów. W pewnym momencie chciałem sobie zrobić panel ze statystykami, w którym mógłbym wyświetlić np. tabelę z kolumnami w postaci :

|-------------|
|Brand | Ilosc|
|------|------|
|Asus  |  5   |
|Lenovo|  8   |
|HP    |  4   |
|-------------|

Czyli – w moich statystykach w kolumnie Brand wartości nie powinny się powtarzać. Mają się wypisać wszystkie unikalne wartości, a w kolumnie Ilosc mają być zliczone ich wystąpienia.

marki

W związku z tym, że dane wykorzystywane są we wtyczce do WordPressa kod będzie wyglądał mniej więcej tak :

 global $wpdb;
    $table_name = $wpdb->prefix . 'xxx'; // tables prefix
    $all_brands = $wpdb->get_results("SELECT brand, COUNT(brand) AS liczba FROM $table_name GROUP BY brand");

Tutaj połączyłem się do bazy i utworzyłem zapytanie.

<table class="my_class">
	<thead>
		<tr>
			<th>Marka</th>	<th>Ilosc</th>
		</tr>
	</thead>
	<tbody>
		<?php 
		foreach ($all_brands as $value): 
		echo '<tr><td>'.$value->brand.'</td><td>'.$value->liczba.'</td></tr>';
		endforeach;  
		?>
	</tbody>
</table>

Następnie utworzyłem tabelę, i za pomocą pętli foreach wyciągnąłem interesujące mnie dane.

Efektem tego działania jest…

Zliczanie unikalnych wartości z bazy

No i o to chodziło 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.