mysql_fetch_assoc o mysql_fetch_array non fa differenza: il primo record viene sempre saltato nel ciclo while. in questo senso ha ragione mxa.
A questo punto la domanda è: come posso fare per controllare se l' espressione $result = mysql_query($query); contiene dei dati oppure no prima di far partire il ciclo while in modo da poter avvisare anche il client se il recorset è pieno o non sono stati trovati record?