Si questo lo so!
Ma non volevo tornare alla pagina PHP.

Se due utenti A e B eseguono contemporaneamente il codice:
codice:
1) INSERT INTO `pulsanti` (`nome`) VALUES ('prova') 

2) $id_generato=mysql_insert_id(); 

3) UPDATE `pulsanti` SET (`ord`='$id_generato')
visto che richiamano la stessa pagina PHP, potrebbe succedere che una esecuzione concorrente sia del tipo:

codice:
A1) INSERT INTO `pulsanti` (`nome`) VALUES ('prova') id=3
B1) INSERT INTO `pulsanti` (`nome`) VALUES ('prova') id=4
A2) $id_generato=mysql_insert_id();                  id=4 e non 3
B2) $id_generato=mysql_insert_id();                  id=4
A3) UPDATE `pulsanti` SET (`ord`='$id_generato')     ord=4
B3) UPDATE `pulsanti` SET (`ord`='$id_generato')     ord=4
dove con An ho indicato la riga n-ma eseguita dall'utente A.
Un simile ordine temporale dell'esecuzione su database delle istruzioni sarebbe estremamente pernicioso, per la conseguente inconsistenza del database.

Questo perché PHP chiede a MySQL di fare la insert e poi lo libera, permettendo ad altri di fare una ulteriore INSERT, prima che l'istruzione mysql_insert_id() possa raccogliere il corretto id.
Si, lo so, è un caso limite! Praticamente A e B devono far eseguire il codice contemporaneamente, ma io preferisco programmare bene e non tralasciare niente!

Se invece l'istruzione fosse una sola, eseguita interamente da MySQL non si avrebbe inconsistenza.

Potrei usare le transazioni, ma per una cosa così, preferisco adottare altri escamotage...

Possibile che non ci sia metodo?