Raggruppare dati in categorie con group by

davide1982

Nuovo Utente
14 Giu 2010
26
0
0
Buongiorno avrei bisogno di aiuto per effettuare una query di raggruppamento delle noizie presenti nel mio sito.

Ho una tabella news di cui riporto le colonne interessate:
id, titolo, categoria, data

Le news sono suddivise in 4 categorie e assegno una determinata categoria con i numeri da 1 a 4.

esempio:
id:1
titolo: news1
categoria: 2
data: timestamp

Il risultato che vorrei ottenere è la suddivisione in colonne (categorie) delle ultime news (le ultime dieci per esempio), così:
Cat1
news4
news3
news2
news1

Cat2
news2
news1

Cat3
news3
news2
news1

Cat4
news1


Il massimo che sono riuscito a ottenere invece è la suddivisione in categorie con solo l'ultimo record per ciascuna di esse:
Cat1
news4

Cat2
news2

Cat3
news3

Cat4
news1

Con questa query:
SELECT id,titolo,categoria FROM news GROUP BY categoria ORDER BY data DESC

Ho provato a guardare molti altri tipi di query, anche più complesse, ma non sono sicuro di quale faccia più al caso mio.... :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
non so se usi php ma ti scrivo come potresti fare in php

PHP:
<?php
$ris_c=mysql_query("SELECT categoria FROM news GROUP BY categoria ORDER BY data DESC");
while($riga_c=mysql_fetch_array($ris_c)){
	$cat=$riga_c['categoria'];
	echo "categoria: $cat<br>";
	$ris_n=mysql_query("SELECT * FROM news WHERE categoria='$cat' ORDER BY data DESC");
	while($riga_n=mysql_fetch_array($ris_n)){
		$new=$riga_n['titolo'];
		$data=$riga_n['data'];
		echo"news del ".date("d-m-Y",$data).": $new<br>";
	}
}
?>
prova al massimo non funzia
 

davide1982

Nuovo Utente
14 Giu 2010
26
0
0
Grazie, ho preso spunto dal tuo consiglio e alla fine ho fatto così:

$categoria è un array contenente le categorie

PHP:
<div id="links_to_news">
<?php
	for ($i=1;$i<6;$i++) {
?>
       <p class="greenText uppercase"><?=$categoria[$i-1]?></p>
<?php
       $query_news = mysql_query("SELECT id,titolo,categoria FROM news WHERE pubblica = '1' AND categoria = '".$i."' ORDER BY data DESC",$link);
       while ($row_news = mysql_fetch_array($query_news)) {
       $id = $row_news['id'];
       $id_cat = $row_news['categoria'];
       $titolo = $row_news['titolo'];
?>
      <p><a href="news.php?cat=<?=$id_cat?>&amp;id=<?=$id?>"><strong><?=$titolo?></strong></a><br /><br /></p>
<?php
	}
?>
</div>
<?php
	}
 
Discussioni simili
Autore Titolo Forum Risposte Data
max1974 raggruppare e girare i dati in colonne MySQL 11
D Raggruppare dati query con php PHP 1
M Raggruppare dati in array per successivo insert PHP 6
S Raggruppare ed estrarre data più recente MySQL 3
R Raggruppare valori array PHP 5
A Raggruppare record con stessa data PHP 13
max1974 [PHP] Raggruppare array PHP 4
MarcoGrazia [mysql][mariadb]Raggruppare query in base alla data MySQL 2
M [PHP] [HTML] Raggruppare 4 pagine web in una PHP 3
A Raggruppare piu' funzioni in una sola PHP 1
N Raggruppare risultati di due tabelle PHP 1
ivarello Raggruppare Query per mese PHP 1
mircop Raggruppare elementi di una tabella PHP 2
G Raggruppare record tabella PHP 1
X Raggruppare risultati di una query PHP 3
N dati tabella non presi PHP 0
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
I Assegnare dati fetch request ad una variabile globale Javascript 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
L Ricezione dei dati su file php da modulo html PHP 6
L inserimento form dati multipli ? PHP 0
S Leggere dati da API e visualizzarli PHP 0
S problema con recupero dati tabella mysql PHP 2
E Progressbar estrazione dati da tabella mySQL Ajax 9
A invio massivo dati a file php Javascript 4
M Inviare dati nel db dopo risposta alert PHP 0
A recuperare i dati passati nel post PHP 1
L Estrazione dati php Database 6
L Estrazione dati casuali non doppioni MySQL 1
J Form inserimento dati in database Ajax 1
D Recupero dati da HDD esterno Hardware 0
L non duplicare dati in stato "aggiornamento" PHP 6
L inserire dati multi livello PHP 8
L input (rilevare cambio dati) PHP 3
L input dati con inser into select ? PHP 4
W Invio Dati ad un altra pagina Classic ASP 1
A Mostrare dati database per pagine PHP 2
Samuele Ronzani Sposta dati in una tabella eliminandolo MySQL 6
S Gestire scelta dropdown con dati da Mysql PHP 2
C Estrarre dati stringa Sql Database 1
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
W Evitare ridondanza dei dati Classic ASP 3
MarcoGrazia Dati nulli su join tra più tabelle MySQL 1
A Inserimento dati nel database tramite form + altre operazioni PHP 18
Alex_70 sql importazione dati MySQL 0
C Aggiungere blocco dati Javascript 6
G inserire dati automaticamente in mysql PHP 0
Tommy03 Unire dati da due tabelle MySQL 5
S Trasferire dati sulle pagine del sito PHP 7
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0

Discussioni simili