Codice PHP:
function GetPhoto($link$email$princ){
    if( 
$princ == ){
        
$query = @mysql_query("SELECT * FROM foto WHERE email='$email' AND principale='1'"$link);
    }else{
        
$query = @mysql_query("SELECT * FROM foto WHERE email='$email' ORDER BY ordine ASC"$link);
    }
    
mysql_close();
    if(
$query)
        return 
$query;

direi che qui, in questa funzione, fai un errore madornale. Verifichi che $query non sia FALSE e fai il return del resource id # ma prima del return chiudi la connessione a mysql e quindi perdi il buffer di riferimento del result set.

ma anche la prima funzione che hai postato mi suona malissimo....