Visualizzazione risultati 1 fino 30 di 30

Discussione: [SQL] Valore massimo di un campo [era: Aiuto Sql]

  1. #1
    Guest

    Predefinito [SQL] Valore massimo di un campo [era: Aiuto Sql]

    buongiorno a tutti ^^

    scrivo perchè ho un dubbio su sql e query..come faccio a restituire il valore massimo di una colonna (di una tabella di un db), anche se quel valore potrebbero averlo anche altre righe all'interno della tabella? (all'interno del db il tipo della colonna è INT)

    ho provato con SELECT MAX (colonna) ma nn funziona ç__ç

    qualcuno sa come fare?

    grazie cmq ^^
    Ultima modifica di maverick21 : 10-12-2006 alle ore 18.14.40

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    La query dovrebbe essere:
    Codice:
    SELECT MAX(nomecampo) AS 'nomechevuoidargli' FROM nometabella
    P.S.: Ho modificato il titolo.
    Ultima modifica di funcool : 10-12-2006 alle ore 18.17.03
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    in cui dopo l'AS c'è la variabile con cui voglio salvarla senza dover usare il fetch_array?

    nel senso..io voglio selezionare idmax dalla colonna id di una tabella, faccio così:

    $sql="SELECT MAX (id) AS idmax FROM nome_tabella";
    $query=mysql_query($sql);
    echo "$idmax";
    senza il fetch_array?

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    No, idmax sarà il nome del campo dell'array dove salvi il risultato della query.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    ahh..quindi:

    $sql="SELECT MAX (id) AS idmax FROM nome_tabella";
    $query=mysql_query($sql);
    $idmax=mysql_fetch_array($query);
    $idmax['id']=$id_max;
    echo ""$id_max;

    ??

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Codice PHP:
    $sql="SELECT MAX (id) AS idmax FROM nome_tabella";
    $query=mysql_query($sql);
    $risultato=mysql_fetch_array($query);
    $id_max=$risultato['idmax'];
    echo
    $id_max;
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    non funziona ç___ç

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ti dà qualche errore?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    Guest

    Predefinito

    nessuno, non visualizza record

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Prova a fare così:
    Codice PHP:
    $sql="SELECT MAX (id) AS idmax FROM nome_tabella";
    $query=mysql_query($sql);
    $risultato=mysql_fetch_array($query);
    $id_max=$risultato[0];
    echo
    $id_max;
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    Guest

    Predefinito

    scusa l'ignoranza ma...come mai [0]?

  12. #12
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Perché è il primo campo del risultato della query.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  13. #13
    Guest

    Predefinito

    nada ç___ç

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ti dà qualche errore ora?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    Guest

    Predefinito

    no, sempre come prima, non scrive nulla .__.

    EDIT: può centrare il fatto che quel valore che voglio selezionare sia assegnato anche ad altre righe all'interno della tabella?
    Ultima modifica di funcool : 10-12-2006 alle ore 19.04.18

  16. #16
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Alla fine della query prova ad aggiungere "GROUP BY id".

    P.S.: Non scrivere due messaggi consecutivi, utilizza il tasto Edita.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  17. #17
    Guest

    Predefinito

    nada..per caso quel campo deve essere impostato come una key all'interno della tabella del db?

  18. #18
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non ho capito cosa vuoi dire.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  19. #19
    Guest

    Predefinito

    nel senso...come attributo alla colonna 'id' nel DB devo mettere qualche Key come Index, Primary ecc?

  20. #20
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    In teoria no.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  21. #21
    Guest

    Predefinito

    Posta la struttura della tabella.


    Ciao!!

  22. #22
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Citazione Originalmente inviato da funcool
    In teoria no.
    quoto. ;) di solito l'id lo assegno sul numero di dati che ho già, con
    Codice PHP:
    #Apro il database (o come si chiama) $sq
    $r = mysql_query('SELECT * FROM database',$sq);
    $nuovo_id = mysql_num_rows($r)+1;
    (io non lo so neanke come si fa primary key ahah mi dà sempre errore, qual è la sintassi? )
    Ultima modifica di Luffio : 10-12-2006 alle ore 23.55.16

  23. #23
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da Luffio
    quoto. ;) di solito l'id lo assegno sul numero di dati che ho già, con
    Codice PHP:
    #Apro il database (o come si chiama) $sq
    $r = mysql_query('SELECT * FROM database',$sq);
    $nuovo_id = mysql_num_rows($r)+1;
    Ti conviene mettere il campo id come "auto_increment".
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  24. #24
    Guest

    Predefinito

    eccomi di nuovo..allora..

    La tabella (che è la base per una specie di forum)ha tante colonne ma quelle che servono in questa situazione sono: Mittente, Data, Idmex (auto_increment e chiave Index), Idtopic

    a me serve richiamare il valore mex di Data e Idtopic (entrambi Integer) ma quando faccio come mi ha consigliato Funcool (che era tar laltro il metodo che conoscevo io ma nn andando ho postato qui) non funge cmq ç__ç

  25. #25
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ma i valori massimi li cerchi uno alla volta?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  26. #26
    Guest

    Predefinito

    in che senso?

    a me serve il valore max della data per indicare lultimo mex nella pagina dei topic
    e il numero max dei topic perchè se quando viene inserito un nuovo topic aggiungo '1' al numero max di questi è impossibile che due topic abbian lo stesso numero (e come dice luffio in questo caso nn va bene perchè se i topic son 10 e uno viene cancellato, quando ne viene creato uno nuovo quello avrà come idtopic appunto 10 ;P)

  27. #27
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Intendevo domandarti se nella stessa query cercavi più di un campo con il valore massimo.
    Per quello che vuoi fare, come già detto, basta che dai la proprietà auto_increment al campo che deve incrementarsi di 1 ogni volta che viene inserito un record.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  28. #28
    Guest

    Predefinito

    ecco appunto, il fatto è che nn deve incrementarsi di uno ogni volta, perchè essendo l'id dei topic, tutti i posts di quel topic dovranno avere l'idtopic uguale, e con l'autoincrement nn si può fare (anche perchè auto_incremente l'ho già assegnato all'id generale)

    e cmq no, pensavo di usare due query diverse per richiamare il valore max di date e poi di idtopic

  29. #29
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    A cosa ti servono due "id" per un solo record? Aumentando l'id tramite auto_increment puoi recuperare il suo valore con la funzione mysql_insert_id.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  30. #30
    Guest

    Predefinito

    allora...essendo una sorta di forum...ci sono diverse pagine in cui si "vedono" scritte..

    quella con l'elenco delle bacheche, quella con l'elenco dei topic di una bacheca, e quella con i post di un topic..io ho messo l'id in modo che ogni post, topic e bacheca sia diverso (con auto_increment)

    ma potrebbero capitare casi in cui, in una bacheca, venagno creati due topic con lo stesso nome e quindi qualora uno canceli uno dei due topic anche l'altro verrebbe cancellato .___. se però facessi che viene cancellato in base all'id allora rimarrebbero nel DB dei post a cui nn si può accedere (perchè è stato cancellato il topic di riferimento) che occuperebbero spazio inutile .___.

    per questo ho creato la colonna idtopic, ma per far in modo che non vengano creati due topic con lo stesso idtopic (ho spiegato nel mex sopra come questa cosa potrebbe capitare) devo nella pagina in cui vengon o inseriti nuovi topic richiamare il valore max del topic e aggiungere uno per poi inserirlo nel DB..

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •