[PHP] Recupero id autoincrement

bubino8

Utente Attivo
28 Apr 2017
344
19
18
28
BZ
Buonasera,

Avrei bisogno di recuperare tramite una query il prossimo id autoincrement prima ancora di eseguire la query. Esiste un modo?


Grazie
 

zorro

Utente Attivo
20 Ott 2014
272
11
18
ROMA
Ciao Bubino,
se non ho capito male, tu vorresti uno script che recuperasse, da un DB, il valore dell'ultimo ID immesso (e quindi il valore del successivo). Giusto?

Zorro
 

bubino8

Utente Attivo
28 Apr 2017
344
19
18
28
BZ
ciao
si è proprio così ma l'ultimo id effettivo.

Es.: Se recupero l'ultimo id che è 34 incremento e il successivo sarà 35.

Ma se dovessi cancellare il record con id 34 l'id precedente sarebbe 33 quindi alla query seguente l'id successivo diventerebbe nuovamente 34.

Non so se mi sono spiegato:D
 

bubino8

Utente Attivo
28 Apr 2017
344
19
18
28
BZ
Ciao grazie per le risposte intanto.

Allora ID autoincrement non lo metto io, il discorso che con la SELECT MAX(ID) del tuo esempio non vado a recuperare l'ID effettivo ma quello dell'ultimo record.
Quindi se cancello l'ultimo record quindi ID 34 con MAX(ID) recupererò quello precedente quindi 33.


mi sono spiegato male
diventerebbe nuovamente 34.
l'id ovviamente si incrementa ma ho bisogno di averlo prima per poterlo mettere in una campo.

in sostanza devo creare in un campo un URL di questo tipo:
http://192.168.1.108/qrcdr/contatore.php?url=sito&id=(numero ID autoincrement)

Non so in che altro modo spiegarmi scusate hehe.
 

marino51

Utente Attivo
28 Feb 2013
3.035
192
63
Lombardia
premesso che la tua spiegazione é molto chiara, provo a riepilogare la mia, integrandola

autoincrement è per definizione automatico,
ma nessuno vieta di gestirlo manualmente definendo il campo come un intero e poi usando la "insert…. select … 1+max(id) from ….",
se gestito manualmente ciò che vorresti ottenere é di facile soluzione

ma dovrebbe essere di facile soluzione anche con la versione automatica, nella discussione che ti ho indicato, trovi
PHP:
$db = new mysqli('localhost', 'user', 'pass', 'database');
$sql = "SHOW TABLE STATUS LIKE 'table'";
$result=$db->query($sql);
$row = $result->fetch_assoc();
echo $row['Auto_increment'];
ovvero questo codice va ad interrogare il valore che avrà il prossimo "autoincrement" per la tabella che é stata specificata

questo lascerebbe supporre un giusto trattamento anche in caso di cancellazione dell'ultimo record inserito

ma rimane il problema, se l'applicazione è utilizzata da più utenti contemporaneamente, non sai chi conferma per primo e chi si prende il primo "autoincrement" ….

la soluzione che stai adottando, come parere, é "debole", mi sembra impossibile tu non possa creare l'url nel momento in cui deve essre usato, prendendo l'autoincrement" aggiornato nella seconda tabella ...
 

bubino8

Utente Attivo
28 Apr 2017
344
19
18
28
BZ
Grazie mille per la risposta sei stato chiarissimo.

Ora che mi hai fatto notare
chi conferma per primo e chi si prende il primo "autoincrement"
ho optato per farlo non sull'id ma su un codice casuale generato che ovviamente anchesso sarà univoco.


Grazie ancora per la disponibilità
 

zorro

Utente Attivo
20 Ott 2014
272
11
18
ROMA
Ciao Bubino
anch'io, come Marino, avevo qualche dubbio sulla gestione dell'ID AUTOINCREMENT: ho fatto qualche prova ma, come dice il nome, questo viene assegnato in modo automatico: se l'ultimo ID immesso risulta essere il 33 e tu lo cancelli, e quindi l'ultimo risulterebbe il 32, il nuovo ID sarebbe omunque il 34.
A questo punto potresti (io ho adottato questa soluzione) o recuperare l'ID appena immesso e inseritrlo poi nella URL o, come dici tu, utilizzare un campo univoco interamente gestito da te.


Zorro
 

bubino8

Utente Attivo
28 Apr 2017
344
19
18
28
BZ
Ciao ringrazio anche te per l'aiuto.
Come detto mi sono espresso decisamente male, sono a conoscenza che appunto autoincrement è autonomo e funziona correttamente.
Io dovevo recuperarlo ed inserirlo sulla stessa query. Precedentemente ho fatto
o recuperare l'ID appena immesso e inseritrlo poi nella URL
e con query UPDATE vado ad aggiungere l'ID.

Poi ho optato per la seconda
utilizzare un campo univoco interamente gestito da te.
siccome mi serve per gestire dei QR, in questo modo li rendo dinamici per poterli modificare in un secondo momento.


RISOLTO
Grazie per l'aiuto
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [PHP] Recupero nome immagine da Form con input file PHP 3
S [PHP] form con metodo get e recupero id PHP 4
Emix [PHP] Check - Select e recupero variabili PHP 40
bubino8 [PHP] Recupero input senza invio PHP 1
U [PHP] Selezione con menu a tendina e recupero selezione PHP 5
L Problema con recupero dati in PHP cURL e JAVA con server PHP 1
S [PHP] Recupero più dati da form realizzata ciclo FOR PHP 5
P [PHP] Recupero dati da un array PHP 5
Alessio Gebbia [PHP] Recupero dati da un WHILE ! PHP 3
L PHP e recupero risultati da query PHP 2
L PHP e recupero risultati da query PHP 11
I Recupero numero file uploadati php PHP 1
F errori sul recupero dati mysql e php PHP 3
T Problema recupero dati da file [era: help script php] PHP 9
L [PHP/MYSQL] Recupero campo USER e visualizzarlo nella tabella pagine PHP 13
A Accesso e recupero informazioni su db mysql e 2 tabelle. Php lento nell'esecuzione. PHP 5
L [PHP] Recupero valore dopo il submit PHP 1
M Recupero dati da pagina php PHP 2
P recupero variabile e invio a php Flash 5
G Invio form con PHP PHP 1
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1

Discussioni simili