Iniziamo semplificando un po' il codice:

Codice PHP:
<?php     
// ---------------------------------
// VARIABILI PROVENIENTI DAL FORM IN .HTML

$rif $_POST['riferimento'];
$valore $_POST['valore'];

// ---------------------------------


include("db_click/config.php");
include(
"db_click/dbconnect.php");

// -------- prendo i risultati della tabella per ordinamento ----
$query="select * FROM tabella_click WHERE '$rif' = '$valore'";
$resultmysql_query($query);

// AGGIUNTO DA VIRUS
$deleted_items = array();


//conto il numero di occorrenze trovate nel db
$numrows mysql_num_rows($result);

//se il database è vuoto lo stampo a video
if ($numrows==0){
  print
"Nessun Record Trovato!";
}
//Se invece trovo delle occorrenze...
else
{

 
/* QUESTA PARTE E' INUTILE  e' dispoendiosa e difficile da gestire se cambi qlke colonna
  //Avvio un ciclo for che si ripete per il numero di occorrenze trovate
  for($x=0; $x<$numrows; $x++){

 //Recupero il contenuto di ogni record trovato
    $resrow = mysql_fetch_row($result);
    $id = $resrow[0]; 
    $titolo = $resrow[1];
    $url = $resrow[2];
    $password = $resrow[3];
    $click = $resrow[4];
    $dataeora = $resrow[5];

//Qua dovrei cancellare i record corrispondenti ai dati del form...

$result = "DELETE FROM tabella_click WHERE '$rif' ='$valore'";

safe_query($result);

echo "Il record numero numero $id corrispondente a $rif=$valore è stato cancellato!";

}
*/

// la scansione dei dati falla cosi'
while( $curr mysql_fetch_array($result) )
{
   
// cosi' in $deletes_items ti salvi tutti i record ce li potri leggere poi senza dover farlo a mano
   
array_push($deleted_items $curr );

/*
adesso abbiamo 2 modi per proseguire 
1) concateni una stringa per la delete 
2) effettui una delete a ciclo
*/

// 1)
$filter .=  " '$rif' ='$valore' OR ";

// 2) 
mysql_query"DELETE FROM tabella_click WHERE '$rif' ='$valore'" );

}

//se hai fatto la 1)

$q =  "DELETE FROM tabella_click WHERE $filter ";
// elimino l'ultimo or concatenato
$q substr$q strrpos$q "OR")  )." ;";
//esegui la query
mysql_query($q);



}
?>
A sto punto sta a te la scelta.
EDIT:
Solo che nn capisco una cosa nella delete tu fai $rif=$valore .... il che vuol dire che mysql ad ogni ciclo cerca la colonna di nome $rif di valore $valore. E la elimina.....
Una volta eliminata nn esiste piu' per cui se e' replicata vengono eliminate gia' le replicazioni e sui cicli successivi non fa nulla perche le colonne nn esistono piu'.

Dannazione, scusa se edito a gogo ma qua mi invia salva la form ... mah devo riconfigurare qlkosina.

Cmq a sto punto ti dico che nn vedo perche' devi cilcare se nn usi i dati del ciclo se ti vuoi salvare i valori cancellati fatti la query prima e poi eliminali.
Ma se devi eliminare tutte le righe con colonnaX = 3 basta che una sola delete si arrangia my sql a cancellarle tutte a meno che nn metti un limit.

Esempio
colonna1 | colonna2 | colonna3
ciao--------|--pippo----|--sono io---
hola--------|-pippo-----|como estas
hello-------|darling-----|how are you---

ho messo i trattini al posto degli spazi senno me li tronca.

cmq se tu fai " delete from tabella where colonna2 ='pippo' "
alla fine ottieni

colonna1 | colonna2 | colonna3
hello-------|darling-----|how are you---

e come vedi ha gia' cancellato tutte le riche con colonna2 = "pippo"

se le vuoi salvare metti un ON DELETE e fai la funzione in mysql oppure ti fai prima un'estrazionie e la metti su array come consigliato sopra.