To co podał CuteOne musi zadziałać. A jeżeli nie przekopiowałeś tego tylko próbowałeś poprawić to zapewne nie zauważyłeś że przy zmiennej $_POST[punktykarne] brakuje dla nazwy punktykarne apostrofów.
A tak na przyszłość jak mi coś jest nie tak z zapytaniem to je po prostu wyświetlam na ekranie np:
Kod
$zapytanie="INSERT INTO `punkty_karne` (`IDOsoba`,`Suma_punktow`) VALUES ('$idk[IDOsoba]','$_POST[punktykarne]'";
echo $zapytanie;
$spr = mysql_query($zapytanie) or die(mysql_error());
i od razu zauważysz czego brakuje w zapytaniu

Ale mam jeszcze jedno drobne pytanie czy IDOsoba i Suma_punktow w mysql to typ INT jeżeli tak to po co zmienne $idk[IDOsoba] i $_POST[punktykarne] w apostrof wkładasz?