Foros del Web » Programando para Internet » PHP »

Problema con duplicidad de datos

Estas en el tema de Problema con duplicidad de datos en el foro de PHP en Foros del Web. Hola a todos Un ejemplo pequeño de un archivo que tengo 00:00-01:00 1 6 100 01:00-02:00 2 3 80 02:00-03:00 15 10 90 Este archivo ...
  #1 (permalink)  
Antiguo 17/08/2012, 10:31
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 7 meses
Puntos: 2
Problema con duplicidad de datos

Hola a todos

Un ejemplo pequeño de un archivo que tengo

00:00-01:00 1 6 100
01:00-02:00 2 3 80
02:00-03:00 15 10 90

Este archivo cada hora me genera una linea mas hasta las 23:00 y después se sobrescriben los datos, entonces yo necesito guardar cada linea en una base de datos pero el problema es que como cada hora se me actualiza el archivo me guarda en la base de datos otra vez los registros desde las 00:00 entonces se me terminan duplicando muchas veces y si hago un update se cambian todos los registros que tengo por la ultima linea del archivo, no se como hacer esto pues que en mi base de datos hayan registros por cada día desde las 00:00 hasta las 23:00 sin duplicarlos.


Epsero me puedan ayudar
  #2 (permalink)  
Antiguo 17/08/2012, 10:47
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Problema con duplicidad de datos

Pues además de la hora te sugiero guardar la fecha, de modo que puedas hacer algo así:

$hoy=date("d-m-y");

al leer el archivo, guardar:

Código PHP:
Ver original
  1. if(!mysql_num_rows(mysql_query(" select fecha from mitabla where fechas='$hoy' and hora= '$hora'")))//si no existe la hora el dia de hoy
  2.     mysql_query("insert into mitabla values ('$fecha','$hora','$demasvalores')");//escribo los datos
  #3 (permalink)  
Antiguo 17/08/2012, 11:02
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 7 meses
Puntos: 2
Respuesta: Problema con duplicidad de datos

Cita:
Iniciado por ocp001a Ver Mensaje
Pues además de la hora te sugiero guardar la fecha, de modo que puedas hacer algo así:

$hoy=date("d-m-y");

al leer el archivo, guardar:

Código PHP:
Ver original
  1. if(!mysql_num_rows(mysql_query(" select fecha from mitabla where fechas='$hoy' and hora= '$hora'")))//si no existe la hora el dia de hoy
  2.     mysql_query("insert into mitabla values ('$fecha','$hora','$demasvalores')");//escribo los datos
Gracias por tu respuesta modifique el codigo pero no me guarda registros en la base de datos, asi quedo el codigo
Código PHP:
if ($index>=11 && $index<=19 ){

$hoy=date("d-m-y");
    echo 
"<tr>";  
    echo 
"<td>".$Dia."</td>";  
    echo 
"<td>".$Total_llamadas."</td>";  
    echo 
"<td>".$Promedio_respuesta."</td>";  
    echo 
"<td>".$Total_abandonadas."</td>";  
    echo 
"<td>".$Promedio_abandono."</td>";  
    echo 
"<td>".$Promedio_duracion."</td>";  
    echo 
"<td>".$Total_otro_estado."</td>";  
    echo 
"<td>".$Promedio_agentes."</td>";  
    echo 
"<td>".$Nivel_servicio."</td>";
    echo 
"<td>".$hoy."</td>";    
    echo 
"</tr>";  

if(!
mysql_num_rows(mysql_query(" select Fecha from hora_voz where Fecha='$hoy' and Hora= '$Dia'")))//si no existe la hora el dia de hoy
    
mysql_query("insert into hora_voz values ('$Dia','$Total_llamadas','$Promedio_respuesta','$Total_abandonadas','$Promedio_abandono','$Promedio_duracion', '$Total_otro_estado','$Promedio_agentes','$Nivel_servicio','$hoy')");//escribo los datos    
    

  #4 (permalink)  
Antiguo 17/08/2012, 11:08
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Problema con duplicidad de datos

Si conocer la estructura de tu tabla y tus datos es algo complicado, pero te puedo recomendar ir depurando:

Código PHP:
Ver original
  1. if(!mysql_num_rows(mysql_query(" select Fecha from hora_voz where Fecha='$hoy' and Hora= '$Dia'"))){//si no existe la hora el dia de hoy
  2.    echo "entre al if ";
  3.     if(!mysql_query("insert into hora_voz values ('$Dia','$Total_llamadas','$Promedio_respuesta','$Total_abandonadas','$Promedio_abandono','$Promedio_duracion', '$Total_otro_estado','$Promedio_agentes','$Nivel_servicio','$Fecha1')"))//escribo los datos    
  4.     echo mysql_error(); //indico si hay error
  5. }else
  6.  echo mysql_error();

EL if(!mysql_query es para comprobar si se ejecuta o no tu consulta, en caso de que no, hace el echo mysql_error()
  #5 (permalink)  
Antiguo 17/08/2012, 11:13
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años, 7 meses
Puntos: 2
Respuesta: Problema con duplicidad de datos

Cita:
Iniciado por ocp001a Ver Mensaje
Si conocer la estructura de tu tabla y tus datos es algo complicado, pero te puedo recomendar ir depurando:
Mira esos son mis datos

0:00- 1:00 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
1:00- 2:00 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
2:00- 3:00 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
3:00- 4:00 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
4:00- 5:00 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
5:00- 6:00 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
6:00- 7:00 0 0:00 0 0:00 0:00 0:00 0 0 1:12 0.6
7:00- 8:00 0 0:00 0 0:00 0:00 0:00 0 0 1:07 1.5
8:00- 9:00 0 0:00 0 0:00 0:00 0:00 0 0 14:45 3.0





y este es mi codigo php
Código PHP:
$gestor = @fopen("REPORTES/report_list_bcms_skill_15_time_00-00_.txt""r");//tarificacion04202012.txt  
if ($gestor) {  
$i=  
$cod=0;  
 
$index=0;

    echo 
"<table border='1' align='center'>";  
    echo 
"<tr>";  
    echo 
"<td>Dia</td><td>Total_llamadas</td><td>Promedio_respuesta</td><td>Total_abandonadas</td><td>Promedio_abandono</td><td>Promedio_duracion</td><td>Total_otro_estado</td><td>Promedio_agentes</td><td>Nivel_servicio</td>";  
    echo 
"</tr>";  
    while ((
$buffer fgets($gestor999)) !== false) { 
$index++;
/*if($index>=7){
exit();
}    */
//$nuevacadena=preg_split("/SUMMARY/",$buffer,2);
    
$texto strtolower($buffer);
    
$arr = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","%","_","-","*");

echo 
"<br>";
$texto_nuevo str_replace($arr""$texto);
//echo $texto_nuevo;
    
$Dia=substr($texto_nuevo0,11);  
    
$Total_llamadas=substr($texto_nuevo,  14,3);  
    
$Promedio_respuesta=substr($texto_nuevo18,5); 
    
$Total_abandonadas=substr($texto_nuevo27,3);      
    
$Promedio_abandono=substr($texto_nuevo30,5);  
    
$Promedio_duracion=substr($texto_nuevo36,5);  
    
$Total_otro_estado=substr($texto_nuevo60,8);  
    
$Promedio_agentes=substr($texto_nuevo69,4);  
    
$Nivel_servicio =substr($texto_nuevo74,3);  
    
$Fechasubstr($texto_nuevo,  40,2);
    
    
    
$Dia=trim($Dia);//Dia     
    
$Total_llamadas=trim($Total_llamadas);//Total_llamadas 
    
$Promedio_respuesta=trim($Promedio_respuesta);//Promedio_respuesta  
    
$Total_abandonadas=trim($Total_abandonadas);//Total_abandonadas 
    
$Promedio_abandono=trim($Promedio_abandono);//Promedio_abandono  
    
$Promedio_duracion=trim($Promedio_duracion);//Promedio_duracion  
    
$Total_otro_estado=trim($Total_otro_estado);//Total_otro_estado  
    
$Promedio_agentes=trim($Promedio_agentes);//Promedio_agentes  
    
$Nivel_servicio=trim($Nivel_servicio);//Nivel_servicio  
    
$Fecha=trim($Fecha);
    
    if (
$Fecha=='00'){$Fecha="";}
    echo 
$Fecha."<br>";
    
date("d" ,time()); 
$Fecha1date("d" ,time());

//echo $Fecha1;

if ($index>=11 && $index<=19 ){

$hoy=date("d-m-y");
    echo 
"<tr>";  
    echo 
"<td>".$Dia."</td>";  
    echo 
"<td>".$Total_llamadas."</td>";  
    echo 
"<td>".$Promedio_respuesta."</td>";  
    echo 
"<td>".$Total_abandonadas."</td>";  
    echo 
"<td>".$Promedio_abandono."</td>";  
    echo 
"<td>".$Promedio_duracion."</td>";  
    echo 
"<td>".$Total_otro_estado."</td>";  
    echo 
"<td>".$Promedio_agentes."</td>";  
    echo 
"<td>".$Nivel_servicio."</td>";
    echo 
"<td>".$hoy."</td>";    
    echo 
"</tr>";  

if(!
mysql_num_rows(mysql_query(" select Fecha from hora_voz where Fecha='$hoy' and Hora= '$Dia'")))//si no existe la hora el dia de hoy
    
mysql_query("insert into hora_voz values ('$Dia','$Total_llamadas','$Promedio_respuesta','$Total_abandonadas','$Promedio_abandono','$Promedio_duracion', '$Total_otro_estado','$Promedio_agentes','$Nivel_servicio','$Fecha1')");//escribo los datos    
    


Etiquetas: duplicidad, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:35.