se vuoi contare quanti record ci sono dovresti usare count(*) che ti rende il numero esatto delle ricorrenze senza dover fare la scansione di tutta la tabella.

mi pare pero' che anche la logica che usi non sia precisa.

Codice PHP:
....
        
$cerca=mysql_num_rows($dati_cerca);
        
            if(
$cerca <1)
            
            {
$duplicato=1;}
            else{
$duplicato=0;} 
se $cerca e' inferiore a 1 significa che e' zero. Se e' zero tu metti duplicato = 1 ????

Per quanto riguarda la ricerca sulla descrizione sara' dura farla esattamente con la stringa identica. Quindi "forse" vuoi solo cercare una parola o una stringa ben precisa, ma sarebbe errato chiamarlo doppione. Doppione puo' esserlo solo se e' esattamente uguale il record oppure "quel" campo ben definito che dovrebbe essere UNIQUE.

In questo caso la ricerca sarebbe su record/campi duplicati e non su una stringa e andrebbe fatta con una logica diversa.