Visualizzazione risultati 1 fino 11 di 11

Discussione: [mysql] ultimo id di una tabella

  1. #1
    Guest

    Predefinito [mysql] ultimo id di una tabella

    lo so, è una ca**ata, ma proprio nn riesco a ottenerlo!!
    dovrebbe essere facile, ma mi sta facendo uscire di testa.

    praticamente, il valore id di questa tabella viene autoincrementato se, inserendo un nuovo record, si tralascia il suo inserimento.
    il mio problema è che se elimino l'ultimo record (id = 10 ) e ne inserisco uno nuovo, avrò sempre lo stesso numero di elementi (10 elementi), ma l'id del nuovo record è ID=11 ...
    ora, per evitare questo, dovrei passare l'id assieme a tutti gli altri elementi del record.

    quindi pensavo di ottenere l'ultimo id tramite una query sql (id = 9), di incrementare il suo valore (id = 10), e di passarlo assieme agli altri elementi del record.

    il problema è che la query che uso nn mi restituisce l'ultimo id :(

    Codice:
    $poba = mysql_query("SELECT * FROM nuke_cds ORDER BY id DESC LIMIT 1");
    è sbaglaita la query?

    help me plz :*

  2. #2
    Guest

    Predefinito

    $poba = mysql_query("SELECT COUNT(id) FROM nuke_cds");
    $count = mysql_result($poba, 0);

  3. #3
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    prova con LIMIT 0,1
    Se smetti di imparare e evolverti sei morto dentro

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da makpaolo
    prova con LIMIT 0,1
    non va

    Citazione Originalmente inviato da theCoreWS
    $poba = mysql_query("SELECT COUNT(id) FROM nuke_cds");
    $count = mysql_result($poba, 0);
    così facendo ottengo il numero totale di elementi, ma non il valore dell'ultimo id. esempio, ho 850 elementi. ne cancello 10 e ne aggiungo 10.
    totale nuovi elementi 10. ultimo id = 860. ora, siccome non posso mettermi a ricontrollare 850 elementi per verificare quale id manca, allora ho deciso d'ora in poi di mettere ordine.

    quello che voglio ottenere io dalla query, non è il numero totale, ma l'ultimo numero (che sarà necessariamente => a quello totale) ... ovvero, nn devo ottenere 850 (numero record) ma 860 (id dell'ultimo record)

    spero di essere stato un po' più chiaro ...

  5. #5
    L'avatar di marcio
    marcio non è connesso AlterGuru 2500
    Data registrazione
    17-08-2003
    Residenza
    Palermo
    Messaggi
    3,300

    Predefinito

    query = "SELECT * FROM tabella ORDER BY id LIMIT 1";

  6. #6
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    provato con il comando:

    Codice PHP:
    SHOW TABLE STATUS LIKE '<nometabella>'
    ti dovrebbe ritornare un array con tanti dati riguardo quella tabella... tra quei dati ci dovrebbe essere un campo "Auto_increment" che ti dice esattamente dov'è arrivato OLD

    se l'id l'hai piazzato dentro prima di eseguire quella query ti basta fare un
    Codice PHP:
    SELECT LAST_INSERT_ID();
    ...

    perchè ti serve per forza conoscere il nuovo id prima di metterlo dentro? il database si arrangia ad aggiungerlo da solo OLD
    Ultima modifica di Evcz : 08-11-2004 alle ore 17.03.25
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da Evcz
    provato con il comando:

    Codice PHP:
    SHOW TABLE STATUS LIKE '<nometabella>'
    ti dovrebbe ritornare un array con tanti dati riguardo quella tabella... tra quei dati ci dovrebbe essere un campo "Auto_increment" che ti dice esattamente dov'è arrivato OLD
    questo non lo sapevo....adesso so una cosa nuova OLD

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da Evcz
    provato con il comando:

    Codice PHP:
    SHOW TABLE STATUS LIKE '<nometabella>'
    ti dovrebbe ritornare un array con tanti dati riguardo quella tabella... tra quei dati ci dovrebbe essere un campo "Auto_increment" che ti dice esattamente dov'è arrivato OLD

    se l'id l'hai piazzato dentro prima di eseguire quella query ti basta fare un
    Codice PHP:
    SELECT LAST_INSERT_ID();
    ...

    perchè ti serve per forza conoscere il nuovo id prima di metterlo dentro? il database si arrangia ad aggiungerlo da solo OLD
    ora provo...

    cmq, mi serve sapere per forza l'id prima di metterlo dentro perchè se lascio fare con l'auto increment succede: se cancello il record con id=850, e poi ne aggiungo un altro, quest'ultimo avrà id=851, e non di nuovo 850 come invece voglio io....

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da Evcz
    provato con il comando:

    Codice PHP:
    SHOW TABLE STATUS LIKE '<nometabella>'
    usando questo, ecco il risultato

    Codice PHP:
    Resource id #277
    , quando invece il numero che dovrei ricevere io è 837 :(

  10. #10
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    Citazione Originalmente inviato da djgaggio
    usando questo, ecco il risultato

    Codice PHP:
    Resource id #277
    , quando invece il numero che dovrei ricevere io è 837 :(
    guarda che quel codice funziona perfettamente!!!

    come lo hai provato?

    fai così:
    Codice PHP:
    $result = mysql_query("show table status like 'nometabella'");
    $array = mysql_fetch_array($result);
    echo
    "il valore di autoincrement è ".$array['Auto_increment'];
    Questi tutti i campi disponibili (in base ai privilegi che hai su quel database):
    Name - Type - Row_format - Rows - Avg_row_length - Data_length - Max_data_length - Index_length - Data_free - Auto_increment - Create_time - Update_time - Check_time - Create_options - Comment

    OLD
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  11. #11
    Guest

    Predefinito

    Potresti usare sempre questo metodo...

    select max(id)
    from tabella

    Ciao deme

Regole di scrittura

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