Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con ordinamento query e Group BY

    Ciao a tutti,
    come da titolo ho un problema con l'ordinamento dei risultati di una query che relazione 2 tabelle sql mediante un apposito record.

    Vi posto la struttura del DB e subito dopo la query per spiegarvi meglio.


    Tabella CORSI
    codice:
    id_corso | nome_corso
    Tabella DATE CORSI
    codice:
    id_data | data_corso | corso
    Il campo "corso" della tabella DATE CORSI è il campo che mette in relazione le due tabelle.

    In particolare, ed è qui che nasce il problema, ogni corso può essere associato a più date e quindi nella tabella DATE CORSI possono esserci più record relativi ad un singolo corso.

    Con la mia query io devo mettere in relazione le due tabelle ed estrarre tutti i corsi presenti nella tabella CORSI e dalla tabella DATE CORSI devo estrarre invece la data più prossima (tenendo presente della data odierna) e soprattutto ordinare i risultati (quindi i corsi) in base alla data cioè in base al campo data_corso

    Ecco la query

    Codice PHP:
    $Q_elenco_corsi  "
    SELECT id_corso, nome_corso, id_data, data_corso, corso   
    FROM corsi,  date_corsi 
    WHERE corso = id_corso AND data_corso >= CURDATE()
    GROUP BY corso    
    ORDER BY data_corso asc      
    LIMIT 10 "

    Questa query funziona correttamente ed estrae un corso alla volta e gli associa una sola data, ma il problema sta nell'ordinamento dei risultati poichè avviene a caso e non in base alla data così come ho impostato nella condizione ORDER.

    Qalcuno sa come posso ovviare a questo problema e riuscire ad ordinare i risultati?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    (A parte il fatto che forse dovevi postare nella sezione Database)

    Se il campo Data_corso è un campo DATE o DATETIME o TIMESTAMP dovrebbe funzionare... forse lo hai impostato con campo VARCHAR o TEXT?
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    Ciao e grazie della tua risposta.

    Ho postato qui in PHP perchè credo che il problema sia dovuto alla query php e non al database, ma se i moderatori ritengono che il mio topic sia più inerente con il DB possono pure procedere a spostare (grazie in anticipo).

    Comunque ti confermo che il campo data_corso è un campo DATE e che nonostante tutto il problema persiste e l'ordinamento non funziona.

    Ciao

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Se ritieni che il problema sia la visualizzazione dei dati fatta tramite PHP allora ti consiglierei innanzitutto a fare copia-incolla della query in phpMyAdmin e dovresti quindi appurare che l'ordinamento dei risultati in pma è diverso dal tuo.
    Appurato che la causa è PHP allora dovrai postare il codice php con cui visualizzi i risultati.
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

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.