ti confermo quello che dice serdominik visto che non puoi usare il metodo post del form usando una action con logica tipica da metodo get (leggi: "urlquery")

oltre a quello in questo codice usi le stesse variabili prima per ottenere i valori del form (che non utilizzi)
e dopo per avere i valori del db (che pero' non includono l' ultimo invio del form)

il codice:

Codice PHP:
if($submit) { 
     
mysql_query('SELECT * FROM '.$_GET['lista'].'');
     
mysql_query("INSERT INTO ".$_GET['lista']." VALUES('$cod', '$oggetto', '$prezzo', '$venduto')") or die(mysql_error());
     echo 
'Oggetto aggiunto alla lista.';
     } 
va modificato togliendo la prima mysql_query che non serve a niente,
INSERT INTO ".$_GET['lista']." la devi cambiare usando $_POST
la echo 'Oggetto aggiunto alla lista.' la devi mettere solo se la seconda mysql_query
ha esito positivo e deve essere formattata correttamente in una logica di codice html.
Tutto il blocco di codice va messo subito prima di questa parte:

Codice PHP:
$query mysql_query('SELECT * FROM '.$_GET['lista'].'') or die(mysql_error());

echo 
'<ul class="lista">[*]CODICE[*]OGGETTO[*]PREZZO[*]VENDUTO[/list]'

questo codice inoltre va modificando usando ('SELECT * FROM '.$_POST['lista'].'') se vuoi mostrare sempre e comunque la lista degli oggetti
oppure lo lasci cosi' com'e' ma inserendolo in un if come ti suggerisce serdominik cosi' in un caso hai l' inserimento e in un altro hai la lista