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'";
$result= mysql_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 , 0 , 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.