Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Recuperare ID

  1. #1

    Recuperare ID

    Ciao,

    Ho una tabella CLIENTI con
    CLIENTE_ID
    CLIENTE_NOME

    e un'altra SITUAZIONI
    SITUAZIONE_ID
    SITUAZIONE_CLIENTE_ID

    Vorrei montare una query che prima scriva nella tabella CLIENTI il nome, e poi nella tabella SITUAZIONI l'ID del Cliente.

    Ok per la prima parte. Inserisco con : INSERT INTO clienti

    Ma come faccio a recuperare il CLIENTE_ID e scriverlo nella tabella SITUAZIONI nel campo SITUAZIONE_CLIENTE_ID??

    Grazie mille per l'aiuto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    usa mysql_insert_id() subito dopo l'insert, ti restituisce l'ultimo id inserito.

  3. #3
    Originariamente inviato da Alhazred
    usa mysql_insert_id() subito dopo l'insert, ti restituisce l'ultimo id inserito.
    Grazie Alhazred
    Come lo devo inserie in una query simile?

    $result = mysql_query("INSERT INTO clienti (cliente_nome)
    VALUES ('$cliente_nome')");


  4. #4
    Così

    $id = mysql_insert_id();

    Funzionato, GRAZIE MILLE Alhazred


  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Unica nota, l'id e' tipo intero ?
    Se si e' int(11) o big int? per big int potresti avere problemi, come se non e' un intero.

  6. #6
    Originariamente inviato da Virus_101
    Unica nota, l'id e' tipo intero ?
    Se si e' int(11) o big int? per big int potresti avere problemi, come se non e' un intero.
    `Clienti` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    ok in questo caso ti va bene, ma fai attenzione che se l'id e' tipo bigint non funziona correttamente a causa del typecasting eseguito( l'intero grande non e' esprimibile in un intero normale e php non sa la differenze e potresti andare in overflow)

    Just to be safe :
    1- controlla la doc ufficiale dove spiegano questa cosa :
    http://it.php.net/manual/en/function...-insert-id.php

    mysql_insert_id() will convert the return type of the native MySQL C API function mysql_insert_id() to a type of long (named int in PHP). If your AUTO_INCREMENT column has a column type of BIGINT (64 bits) the conversion may result in an incorrect value. Instead, use the internal MySQL SQL function LAST_INSERT_ID() in an SQL query. For more information about PHP's maximum integer values, please see the integer documentation.
    e come suggerito ecco il workaroud
    Codice PHP:
    <?php
    function tableLastInsertId($table)
    {
        
    $q "SELECT LAST_INSERT_ID() FROM $table";
        return 
    mysql_num_rows(mysql_query($q)) ;
    }
    ?>

  8. #8
    Grazie Virus,
    Annotato!

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.