guarda che uranio ti ha detto due cose semplicissime:
1) fatti stampare da php la query di select e di update (con l'encrypting ovviamente) e poi eseguile direttamente in mysql (o tramite phpmyadmin)... se lì funzionano, allora il problema è altrove
2) alla domanda "quant'è lungo il campo password" potresti provare a rispondere... nel senso:
se non erro, con md5 tutto quello che codifichi prende 64 caratteri.. anche se fai md5('p') avrai una stringa di 64 caratteri, cos'ì come se fai md5('del poema epico più lungo del mondo')... se il tuo campo password è settato a 30, magari mysql non ti dà errore però taglia la parola che stai inserendo, quindi la login non funzionerà mai... peggio mi sento con sha1...