Sì, infatti sbagli:
devi scrivere (perchè il campo cap del database è varchar, DEVI inserire i dati come stringa) così:
codice:
mysql_query("INSERT INTO tbl1 (cap) VALUE ('$cap')");
HTH
Zappa