Cancellare righe doppie e ciclo.

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Salve a tutti, ho una tabella mysql strutturata in questo modo

dataora.......................| pagina..........................|click
----------------------------|-------------------------------|---------------
2014-06-13 12:01:55 | https://www.google.it/ |200

Capita che spesso che due valori vengano duplicati.

Mi servirebbe una query per eliminare i "doppioni". Googlando ho trovato:

PHP:
	$sql ="
SELECT dataora, COUNT( * ) AS cont
FROM db_log
GROUP BY dataora
HAVING COUNT( * ) > 1
";
	
do {
   $rssql = mysql_query( $sql ) or die("1". mysql_error());
   $num_record = mysql_num_rows( $rssql );
   if ( $num_record > 0 ) {
      while( $r = mysql_fetch_assoc( $rssql ) ) {
         $del = "DELETE FROM db_log WHERE dataora =". $r['dataora'];
	 mysql_query( $del ) or die("2".mysql_error());
      }
      $rssql = mysql_query( $sql ) or die("3".mysql_error());
      $num_record = mysql_num_rows( $rssql );
   }
} while( $num_record > 0 );

Solo che all'esecuzione della query $del =, mi restituisce quest'errore
Codice:
2You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '10:36:28' at line 1

Il due che vedete all'inizio era per identificare quale query non andasse a buon fine.

Sapete aiutarmi?
 
Ultima modifica:
ciao
il campo dataora è una stringa per cui
PHP:
<?php
//....
 $del = "DELETE FROM db_log WHERE dataora ='". $r['dataora']."'";
//....
?>
cioe il valore deve essere tra gli apici
 
Grazie borgo avevi ragione. Mi era sfuggito ^.^

Inviato dal mio Nexus 4 utilizzando Tapatalk
 

Discussioni simili