Visualizzazione dei risultati da 1 a 10 su 10

Discussione: aiuto x ordinamento

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250

    aiuto x ordinamento

    ciao a tutti
    ho una tabella articoli così strutturata

    ID | ID-CATEGORIA | TITOLO | DATA INSERIMENTO

    devo fare una query che mi prenda tutti gli articoli in ordine di data inserimento raggruppati x categoria.
    Il risultato dovrebbe essere questo:

    CALCIO (categoria)
    notizia 1 inserita il 10 10 2009

    TENNIS (categoria)
    notizia 1 inserita il 08 10 2009

    Ho fatto questa query ma il risultato non è giusto.

    Non mi trovo per primo la categoria e l'articolo inserito x ultimo.
    Codice PHP:
           <?php
        $s
    ="SELECT * FROM forum WHERE attiva='si' GROUP BY categoria ORDER BY data_ins DESC";
        
    $r=mysql_query($s);
        while(
    $d=mysql_fetch_array($r)){

  2. #2
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Prova con questa:
    SELECT * FROM (select * from forum order by data_ins desc) f where attiva='si' group by categoria
    Crestron Control Systems and AMX Control Systems Programmer

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Ho fatto come mi hai detto tu

    Codice PHP:
    $s="SELECT * FROM (SELECT * FROM forum ORDER BY data_ins DESC) WHERE attiva='si' AND padre='0' GROUP BY categoria"
    niente da fare! Errori!!!

  4. #4
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Se la query è come l'hai scritta tu certo che ci sono degli errori.

    Riguarda un attimo quella che ti postato e vedi se c'è qualcosa che ti sei dimenticato.
    Crestron Control Systems and AMX Control Systems Programmer

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    OPSSSSS
    hai ragione.. mancava la f (sinceramente, pensavo fosse un errore)
    Ora funziona però non mi trovo con l'ordinamento giusto.

    Mi mette questo ordine:

    CATEGORIA 1
    Ultima notizia

    CATEGORIA 2
    Ultima notizia

    CATEGORIA 3
    Ultima notizia

    ECC..

    La tua query mi estrapola le notizie in ordine di inserimento (la recente viene x prima) di ogni categoria..
    Però se all'inizio faccio un controllo delle ultime notizie inserite x estrapolarmi le categorie... se l'ultima notizia inserita è nella categoria 3.. quando stampo l'array dovrei vedermi subito la categoria 3 eppoi le altre.
    Non so' se mi sono spiegato.. ora la PRIMA CATEGORIA che nell'ordinamento è la prima.. mi presenta sotto la notizia + vecchia di quella presente in 3 categoria.

  6. #6
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Non credo di aver capito molto bene...vorresti avere come primo risultato l'ultima notizia della Categoria 1 anche se è più vecchia dell'ultima della Categoria 3?
    Crestron Control Systems and AMX Control Systems Programmer

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Allora... il ragionamento sarebbe questo:

    1. prendo tutti gli articoli in ordine di data inserimento + recente.
    2. una volta che ho la lista degli articoli ordinati, li raggruppo x categorie.

    In questo modo dovrei avere per prima la categoria con l'articolo + recente.

    Esempio:
    Lista articoli
    - articolo 1 inserito il 10-10-2009 in CATEGORIA 1
    - articolo 2 inserito il 07-10-2009 in CATEGORIA 2
    - articolo 3 inserito il 08-10-2009 in CATEGORIA 3

    RISULTALTO:
    - CATEGORIA 1
    articolo 1

    - CATEGORIA 3
    articolo 3

    - CATEGORIA 2
    articolo 2


    Non so' se mi sono spiegato bene..

  8. #8
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Originariamente inviato da musghs
    Allora... il ragionamento sarebbe questo:

    1. prendo tutti gli articoli in ordine di data inserimento + recente.
    2. una volta che ho la lista degli articoli ordinati, li raggruppo x categorie.

    In questo modo dovrei avere per prima la categoria con l'articolo + recente.

    Esempio:
    Lista articoli
    - articolo 1 inserito il 10-10-2009 in CATEGORIA 1
    - articolo 2 inserito il 07-10-2009 in CATEGORIA 2
    - articolo 3 inserito il 08-10-2009 in CATEGORIA 3

    RISULTALTO:
    - CATEGORIA 1
    articolo 1

    - CATEGORIA 3
    articolo 3

    - CATEGORIA 2
    articolo 2


    Non so' se mi sono spiegato bene..
    Questo è esattamente quello che fa la query che ti ho postato.
    Quindi il tuo problema è che ti ritrovi prima la notizia di categoria 3 rispetto a quella della categoria 2.
    Se vuoi che la notizia della categoria 2 risulti prima di quella della categoria 3, basta che tu le riordini per categoria:

    SELECT * FROM (select * from forum order by data_ins desc) f where attiva='si' group by categoria order by categoria
    Crestron Control Systems and AMX Control Systems Programmer

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    250
    Niente, nn è così, ho provato..
    ti allego i record del database in ordine di inserimento:
    Codice PHP:
    ID_CATEGORIA TITOLO DATA_INS
    TITOLO1 2009-01-05 16:44:15
    TITOLO2 2008-12-29 20:23:01
    TITOLO3 2008-12-22 20:25:57
    TITOLO4 2008-12-22 13:34:22
    TITOLO5 2008-12-15 12:18:57 
    Questi sono i record in ordine di data inserimento presenti nel database.

    Questo è il risultato che vorrei avere:

    Codice PHP:
    CATEGORIA 8
    NOTIZIE

    CATEGORIA 2
    NOTIZIE

    CATEGORIA 5
    NOTIZIE 
    E questo è il risultato che ho con la query che mi hai postato:

    Codice PHP:
    CATEGORIA 2
    NOTIZIE

    CATEGORIA 5
    NOTIZIE

    CATEGORIA 8
    NOTIZIE 
    Praticamente mi ordina x categoria e nn per data inserimento notizie.

    Ho provato queste 2 query, stesso risultato:
    Codice PHP:
    $s="SELECT * FROM (SELECT * FROM forum ORDER BY data_ins DESC) f WHERE attiva='si' AND padre='0' GROUP BY categoria";

    $s="SELECT * FROM (SELECT * FROM forum ORDER BY data_ins DESC) f WHERE attiva='si' AND padre='0' GROUP BY categoria ORDER BY categoria"

  10. #10
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    Ma scusa se li vuoi ordinare per data inserimento più recente, basta mettere 'order by data_ins desc' al posto di 'order by categoria'.
    Crestron Control Systems and AMX Control Systems Programmer

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.