Ogólnie wygląda na dobre, (ale tylko algorytm, a nie kod - uwagi niżej dałem) tylko nie jest potrzebne aż takie rozbudowane funkcjami sprawdzanie

Wystarczy samo
$w = mysql_query('SELECT uczen_id FROM uczniowie WHERE uczen_id == \''.$klucz.'\'')
A to dlatego, że jeśli istnieje choć jeden taki uczeń to zwróci tu pewne wartości, jeśli zaś nie to FALSE. I tylko to wystarczy sprawdzać. Nas nie interesuje czy jest konkretna wartość tam, lub ilu takich jest. Ważne jest tylko istnienie, czyli wartość typu bool. A to już nam samo mysql_query zwróci :)No i zwróc uwagę na nawiasy, apostrofy i funkcje, bo o nich zupełnie zapomniałeś

Popatrz, że masz choćby insert do bazy... ale to tylko jakiś text. Nie ma bowiem mysql_query

Ostatecznie masz więc:
import MySQLdb
$conn = Mysqldb
.connect
("localhost", "user", "haslo") or
die ('Nie moge połączyć się z Mysql');
$klucz = "pobierany z czytnika rfid";
$w = mysql_query('SELECT uczen_id FROM uczniowie WHERE uczen_id == \''.$klucz.'\''); if( $w ) {
mysql_query( 'INSERT INTO frekwencja_dzien (uczen_id, czas) values ( \''.$klucz.'\', CURTIME() )'); } else {
echo 'Nie ma takiego ucznia'; }