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

    Visualizzazione ultima data inserita

    Buongiorno a tutti!!

    E' da poco che smanetto con php ed ho cominciato a fare semplicissime applicazioni, più che altro delle tabelle anagrafiche.

    Ora mi trovo davanti ad un piccolo (per voi) problema:

    date due tabelle correlate
    1 Anagrafica
    2 Prove fisiche

    SELECT dati_anagrafici.ID, dati_anagrafici.Cognome, dati_anagrafici.Nome, dati_anagrafici.DataNascita, Data Prova Fisica`
    FROM dati_anagrafici left join prova_fisica on dati_anagrafici.id=prova_fisica.id_anagrafica

    Il problema è che se un ID della tab ANAGRAFICA ha due date (una vecchia ed una recente) nella visualizzazione della tabella dinamica, lo stesso me lo riporta per due volte (con le relative date).

    Ora come faccio a farlo visualizzare una volta con l'ultima data inserita??

    Grazie in anticipo!!

  2. #2
    Prova ad usare DISTINCT e ORDER BY, tipo così:
    Codice PHP:
    SELECT dati_anagrafici.IDdati_anagrafici.Cognomedati_anagrafici.Nomedati_anagrafici.DataNascitaDISTINCT(`Data Prova Fisica`)
    FROM dati_anagrafici left join prova_fisica on dati_anagrafici.id=prova_fisica.id_anagrafica ORDER BY `Data Prova FisicaDESC 
    Un paio di cose:
    • perchè usi un LEFT JOIN? Devi mostrare anche le anagrafiche che non hanno fatto nessuna prova fisica?
    • se i nomi dei campi fra le tabelle non sono uguali puoi omettere il nome della tabella nella query così da renderla un po' più leggibile


    HTH, ciao!

  3. #3
    Ciao sei gentilissimo per la risposta...
    ma non mi funziona DISTINCT, mentre con ORDER BY cmq mi riporta più date.

    Per quanto riguarda LEFT JOIN, si lo uso perchè ho bisogno di sapere chi nn ha proprio effettuato la prova.

    Per farla breve, nella tab principale avrei bisogno di vedere l'elenco del personale con l'ultima prova effettuata; mentre nella pagina di dettaglio dell' ID, lo storico delle prove (questo già funziona).

    Ancora grazie.

    P.S.: grazie per il consiglio dei campi.

  4. #4
    Ok, allora prova due cose:

    • metti il DISTINCT(`Data Prova Fisica`) come primo campo della SELECT (ma il campo si chiama `Data Prova Fisica` ??)
    • prova con un GROUP BY:

    Codice PHP:
    SELECT IDCognomeNomeDataNascita, `Data Prova Fisica`
    FROM dati_anagrafici
        LEFT JOIN prova_fisica ON id 
    id_anagrafica
    GROUP BY 
    `Data Prova FisicaORDER BY `Data Prova FisicaDESC 
    (ho tolto i nomi delle tabelle, magari li devi rimettere se ci sono nomi di campi che confliggono)

  5. #5
    Scusami se ti rompo ma....risultato invariato!
    Il problema è anche che non posso ordinare per prova fisica, bensì per cognome...
    Problema.jpg
    Questo è il risultato..
    In questo caso, il Sig. ABATE GIOVANNI (Nome casuale) dovrebbe essere visualizzato una volta sola..

    Scusami ancora e Grazie mille!!!

  6. #6
    Ok, non avevo capito bene la tua domanda.

    Allora prova questo:
    Codice PHP:
    SELECT IDCognomeNomeDataNascita, `Data Prova Fisica`
    FROM dati_anagrafici
        LEFT JOIN prova_fisica ON id 
    id_anagrafica
    GROUP BY Cognome
    Nome
    ORDER BY Cognome
    , `Data Prova FisicaDESC 

  7. #7
    GRAZIE MILLE!!!!!
    Risolto!

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.