Foros del Web » Programando para Internet » PHP »

sobrescribir base de datos

Estas en el tema de sobrescribir base de datos en el foro de PHP en Foros del Web. hola a todos necesito que me ayuden en una cosa lo que pasa es que tengo una aplicación en php que extrae unos archivos .txt ...

  #1 (permalink)  
Antiguo 16/04/2012, 08:13
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
sobrescribir base de datos

hola a todos

necesito que me ayuden en una cosa

lo que pasa es que tengo una aplicación en php que extrae unos archivos .txt cada minuto,
los datos de ese archivo son guardados en una base de datos,
pero necesito encontrar la forma de que por cada actualización la base de datos se sobrescriba por que si no se sobrescribe se generan muchos registros cada minuto


espero me ayuden gracias
  #2 (permalink)  
Antiguo 16/04/2012, 08:24
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: sobrescribir base de datos

para actualizar una base de datos simplemente tienes que usar el comando UPDATE
  #3 (permalink)  
Antiguo 16/04/2012, 08:32
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Sonrisa Respuesta: sobrescribir base de datos

Cita:
Iniciado por ananda Ver Mensaje
para actualizar una base de datos simplemente tienes que usar el comando UPDATE
me podrias explicar cual es la sentencia exactamente (que aparte de actualizar me sobrescriba)

gracias
  #4 (permalink)  
Antiguo 16/04/2012, 08:35
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: sobrescribir base de datos

Hola

aquí tienes un ejemplo de una sentencia UPDATE

Ejemplo Sentencia UPDATE

saludos
  #5 (permalink)  
Antiguo 16/04/2012, 08:35
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: sobrescribir base de datos

Cita:
Iniciado por wendyl Ver Mensaje
me podrias explicar cual es la sentencia exactamente (que aparte de actualizar me sobrescriba)

gracias
por ejemplo:

Código PHP:
$actualizacion=mysql_query("UPDATE tabla WHERE columna=condicion SET columnaquequieresactualizar=".$variable." "); 
Creo que es así, te lo estoy diciendo de memoria, si no te sale escribe en google update mysql y ya te saldrá la información.
  #6 (permalink)  
Antiguo 16/04/2012, 15:02
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

este es mi update

$actualizacion=mysql_query("UPDATE 'skill15' SET 'id_skill15'=['id_skill15'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]");

la pagina que contiene este update se esta actualizando cada minuto y cada vez que se actualiza extrae un archivo .txt y quiero que cada vez que extraiga un nuevo archivo me sobrescriba el registro anterior pero no logro hacerlo me pueden ayudar

gracias
  #7 (permalink)  
Antiguo 16/04/2012, 18:26
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años
Puntos: 22
Respuesta: sobrescribir base de datos

Hola,
En principio el último UPDATE que has puesto debería funcionar aunque no entiendo muy bien qué es lo que pones entre corchetes [].
Por otro lado, si los campos se corresponden con la tabla, se modificarán todas las filas qu contenga la tabla.

Saludos
__________________
Compartir es vivir
www.programador-php.com
  #8 (permalink)  
Antiguo 17/04/2012, 09:23
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por exangel Ver Mensaje
Hola,
En principio el último UPDATE que has puesto debería funcionar aunque no entiendo muy bien qué es lo que pones entre corchetes [].
Por otro lado, si los campos se corresponden con la tabla, se modificarán todas las filas qu contenga la tabla.

Saludos
hola mira es q tengo una base de datos con nombre actualizar_bd.php y esta se esta actualizando cada minuto pero necesito crear el update para que cada vez q me actualize me sobreescriba los datos anteriormente guardados porfa ayudame es urgente

graciaas
  #9 (permalink)  
Antiguo 17/04/2012, 09:32
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Cita:
Iniciado por wendyl Ver Mensaje
este es mi update

$actualizacion=mysql_query("UPDATE 'skill15' SET 'id_skill15'=['id_skill15'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]");

la pagina que contiene este update se esta actualizando cada minuto y cada vez que se actualiza extrae un archivo .txt y quiero que cada vez que extraiga un nuevo archivo me sobrescriba el registro anterior pero no logro hacerlo me pueden ayudar

gracias
Segun lo que entiendo tu sentencia esta bien, solo deberias de agregarle la clausula WHERE, suponiendo que tu llave primaria es ID_SKILL15 quedaría algo asi:

$actualizacion=mysql_query("UPDATE 'skill15'
SET 'id_skill15'=['id_skill15'],
'login_id'=[login_id],
'extension'=[extension],
'state'=[state],
'time'=[time],
'acd_calls'=[acd_calls],
'ext_out_calls'=[ext_out_calls],
'ext_in_calls'=[ext_in_calls]
WHERE id_skill15 = ['id_skill15']");

por cierto, supongo que lo que esta entre corchetes sera reemplazado por las variables leídas correspondientes :D
  #10 (permalink)  
Antiguo 17/04/2012, 09:42
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Segun lo que entiendo tu sentencia esta bien, solo deberias de agregarle la clausula WHERE, suponiendo que tu llave primaria es ID_SKILL15 quedaría algo asi:

$actualizacion=mysql_query("UPDATE 'skill15'
SET 'id_skill15'=['id_skill15'],
'login_id'=[login_id],
'extension'=[extension],
'state'=[state],
'time'=[time],
'acd_calls'=[acd_calls],
'ext_out_calls'=[ext_out_calls],
'ext_in_calls'=[ext_in_calls]
WHERE id_skill15 = ['id_skill15']");

por cierto, supongo que lo que esta entre corchetes sera reemplazado por las variables leídas correspondientes :D

<?php

//Conexion BD
include ("conexion.php");
$Link=conexion();
//Cargar archivo y almacenarlo como texto
$archivo = fopen("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt","r");

$textoarchivo = show_source("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt",True);

//dividir la cabecera del contenido
$dividir=explode("\n",$textoarchivo);

//ejecutar expresion regular para obtener los datos
$resultado=preg_split('/[~~.~~]/', $dividir[1]);

$primeralinea=True;

//Creacion de la tabla
echo "<table border=1><tr>";
echo "<td>Agent_name</td>";
echo "<td>Login_id</td>";
echo "<td>Extension</td>";
echo "<td>State</td>";
echo "<td>Time</td>";
echo "<td>Acd_calls</td>";
echo "<td>Ext_out_calls</td>";
echo "<td>Ext_in_calls</td>";
echo "</tr>";
$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES (";

//contador para recorrer resultado expresion regular
foreach($resultado as $valor){
if($valor!=="<br>" && $valor!==""){
//la primera linea no la usaremos entonces omitimos esta
if($primeralinea){
$primeralinea=False;
}else{
//expresion regular para dividir los datos
$linea = preg_split("/[\".\"]/", $valor);
echo "<tr>";
$contador=0;
foreach($linea as $final){
if($final!=="," && $final!==""){
//se acabo los campos y dejar de crear celdas en la tabla
if($contador>7){
//FINAL DE TEXTO
}else{
$contador++;
$sql.="'".$final."',";
echo "<td>".$final."</td>";
}
}
}
echo "</tr>";
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql
$sql=trim($sql,",").")";
//EJECUTAR CONSULTA
echo $sql."<br>";
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());
$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES (";
}
$actualizacion=mysql_query("UPDATE 'skill15' SET 'id_skill15'=['id_skill15'],'agent_name'=['agent_name'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]WHERE id_skill15 = ['id_skill15']");
}
}


echo "</table><br>";


mysql_close($Link);
?>

</body>
</html>

ayudame plis que tengo mal no entiendo :(
  #11 (permalink)  
Antiguo 17/04/2012, 10:37
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Ok, segun veo lo que tienes hasta ahora lo que hace es insertar todas las filas que has leído del archivo .txt en la tabla SKILL15, y tú lo que deseas es que inserte los nuevos registros y actualice los registros que ya existen? o bien deseas que cada vez que se lea el archivo elimine toda la data que tiene cargada la tabla y se cargue la nueva información que leíste del archivo?

Si alguna de estas dos cosas es lo que deseas hacer, cual es la llave primaria de la tabla SKILL15?
  #12 (permalink)  
Antiguo 17/04/2012, 10:43
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Ok, segun veo lo que tienes hasta ahora lo que hace es insertar todas las filas que has leído del archivo .txt en la tabla SKILL15, y tú lo que deseas es que inserte los nuevos registros y actualice los registros que ya existen? o bien deseas que cada vez que se lea el archivo elimine toda la data que tiene cargada la tabla y se cargue la nueva información que leíste del archivo?

Si alguna de estas dos cosas es lo que deseas hacer, cual es la llave primaria de la tabla SKILL15?
holaa

sii necesito que cada vez que se lea el archivo elimine toda la data que tiene cargada la tabla y se cargue la nueva información

la llave primaria es id_skill15

gracias por tu ayuda
  #13 (permalink)  
Antiguo 17/04/2012, 10:49
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Prueba con esto (comente dos lineas de código que a mi juicio no deberían de estar donde estaban y agregue una linea de código).

Código PHP:
<?php
    
//Conexion BD
    
include ("conexion.php");
    
    
$Link=conexion();
    
    
//Elimina toda la data de la tabla
    
$mysql mysql_query("DELETE FROM skill15") or die ("Problemas al eliminar informacion. ".mysql_error());
    
    
//Cargar archivo y almacenarlo como texto
    
$archivo fopen("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt","r");

    
$textoarchivo show_source("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt",True);

    
//dividir la cabecera del contenido
    
$dividir=explode("\n",$textoarchivo);

    
//ejecutar expresion regular para obtener los datos
    
$resultado=preg_split('/[~~.~~]/'$dividir[1]);

    
$primeralinea=True;

    
//Creacion de la tabla
    
echo "<table border=1><tr>";
    echo 
"<td>Agent_name</td>";
    echo 
"<td>Login_id</td>";
    echo 
"<td>Extension</td>";
    echo 
"<td>State</td>";
    echo 
"<td>Time</td>";
    echo 
"<td>Acd_calls</td>";
    echo 
"<td>Ext_out_calls</td>";
    echo 
"<td>Ext_in_calls</td>";
    echo 
"</tr>";
    
$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_calls,ext_in_calls) VALUES (";

    
//contador para recorrer resultado expresion regular
    
foreach($resultado as $valor)
    {
        if(
$valor!=="<br>" && $valor!=="")
        {
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea)
            {
                
$primeralinea=False;
            }else
            {
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                
                foreach(
$linea as $final)
                {
                    if(
$final!=="," && $final!=="")
                    {
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador>7)
                        {    
                            
//FINAL DE TEXTO
                        
}
                        else
                        { 
                            
$contador++;
                            
$sql.="'".$final."',";
                            echo 
"<td>".$final."</td>";
                        }
                    }
                }
            
                echo 
"</tr>";
                
                
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql
                
$sql=trim($sql,",").")";

                
//EJECUTAR CONSULTA 
                
echo $sql."<br>";
                
                
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());
                
                
//$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES (";
            
}

            
//$actualizacion=mysql_query("UPDATE skill15 SET id_skill15=['id_skill15'],'agent_name'=['agent_name'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]WHERE id_skill15 = ['id_skill15']");
        
}
    }

    echo 
"</table><br>";

    
mysql_close($Link);
?>
Espero que esto sea lo que necesitas, pruébalo y comenta :)
  #14 (permalink)  
Antiguo 17/04/2012, 10:57
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Prueba con esto (comente dos lineas de código que a mi juicio no deberían de estar donde estaban y agregue una linea de código).

Código PHP:
<?php
    
//Conexion BD
    
include ("conexion.php");
    
    
$Link=conexion();
    
    
//Elimina toda la data de la tabla
    
$mysql mysql_query("DELETE FROM skill15") or die ("Problemas al eliminar informacion. ".mysql_error());
    
    
//Cargar archivo y almacenarlo como texto
    
$archivo fopen("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt","r");

    
$textoarchivo show_source("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt",True);

    
//dividir la cabecera del contenido
    
$dividir=explode("\n",$textoarchivo);

    
//ejecutar expresion regular para obtener los datos
    
$resultado=preg_split('/[~~.~~]/'$dividir[1]);

    
$primeralinea=True;

    
//Creacion de la tabla
    
echo "<table border=1><tr>";
    echo 
"<td>Agent_name</td>";
    echo 
"<td>Login_id</td>";
    echo 
"<td>Extension</td>";
    echo 
"<td>State</td>";
    echo 
"<td>Time</td>";
    echo 
"<td>Acd_calls</td>";
    echo 
"<td>Ext_out_calls</td>";
    echo 
"<td>Ext_in_calls</td>";
    echo 
"</tr>";
    
$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_calls,ext_in_calls) VALUES (";

    
//contador para recorrer resultado expresion regular
    
foreach($resultado as $valor)
    {
        if(
$valor!=="<br>" && $valor!=="")
        {
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea)
            {
                
$primeralinea=False;
            }else
            {
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                
                foreach(
$linea as $final)
                {
                    if(
$final!=="," && $final!=="")
                    {
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador>7)
                        {    
                            
//FINAL DE TEXTO
                        
}
                        else
                        { 
                            
$contador++;
                            
$sql.="'".$final."',";
                            echo 
"<td>".$final."</td>";
                        }
                    }
                }
            
                echo 
"</tr>";
                
                
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql
                
$sql=trim($sql,",").")";

                
//EJECUTAR CONSULTA 
                
echo $sql."<br>";
                
                
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());
                
                
//$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES (";
            
}

            
//$actualizacion=mysql_query("UPDATE skill15 SET id_skill15=['id_skill15'],'agent_name'=['agent_name'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]WHERE id_skill15 = ['id_skill15']");
        
}
    }

    echo 
"</table><br>";

    
mysql_close($Link);
?>
Espero que esto sea lo que necesitas, pruébalo y comenta :)

mira me sale este error


problemas en el insertYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lls,ext_in_calls) VALUES ('PUENTES,DIEGO','11081','11051','ACD','12:07','0' ,'3',' at line 1
  #15 (permalink)  
Antiguo 17/04/2012, 11:03
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

ya me sirvioo muchisimass gracias eres un genio jeje

una pregunta tu sabes hacer expresiones regulares para que me ayudes en una cosa que tengo q capturar
;)
  #16 (permalink)  
Antiguo 17/04/2012, 11:07
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Estoy un poco oxidado en eso, dime que necesitas y vemos si podemos ayudarte.
  #17 (permalink)  
Antiguo 17/04/2012, 12:24
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Estoy un poco oxidado en eso, dime que necesitas y vemos si podemos ayudarte.

mira como viste en el codigo php que te escribi hay se hacen unas expresiones regulares para capturar ciertos datos que se encuentran es ese archivo

4-17-2012 11:48 AM - Report for Voice System name: UNE 76 - monitor bcms skill 15

"15","12:04 TUE APR 17 2012","LAI_VOZ","0","20","0:00","","2","0","0","0" ,"1","0","1","~~Ibarra,Guiova","11444","11414","AU X","11:50","0","0","0","~~PUENTES,DIEGO","11081"," 11051","Other","12:01","0","1","0","","","","","", "","","","","","","","","","","","","","","","","" ,"","","","","","","","","","","","","","","",""," ","","","","","","","","","","","","","","","","", ""



este es el archivo de texto que extraigo el cual tiene dos lineas la primera que es el encabezado y la siguiente donde se encuentra la informacion que capturo y guardo en la base de datos

pero ahora necesito capturar 2 valores mas de esa segunda fila que son "0" el que aparece despues de LAI_VOZ que es el numero que me dice cuantas llamadas hay en espera y 0:00 que es el que me dice cuanto tiempo lleva una llamada en espera necesito capturar esos dos valores en otra tabla

espero haberme hecho entender y me puedas ayudar

gracias :)

Última edición por wendyl; 17/04/2012 a las 13:38
  #18 (permalink)  
Antiguo 17/04/2012, 13:50
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Entiendo que los dos campos que indicas deben de ser almacenados en otra tabla, no hay problema si esto se realiza en el mismo proceso de llenado de la tabla skill15?
  #19 (permalink)  
Antiguo 17/04/2012, 14:04
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Entiendo que los dos campos que indicas deben de ser almacenados en otra tabla, no hay problema si esto se realiza en el mismo proceso de llenado de la tabla skill15?
lo que pasa es que yo empiezo a capturar desde que hay un signo así en el archivo ~~ y los datos que hay antes de ese signo no

no se como mostrar solo esos 2 datos mas lo que ya puedo capturar

me entiendes
  #20 (permalink)  
Antiguo 17/04/2012, 14:57
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Prueba utilizar este código. Te mostrará los dos nuevos campos en una nueva tabla HTML.

Código PHP:
<?php
    
//Conexion BD
    
include ("conexion.php");
    
    
$Link=conexion();
    
    
//Elimina toda la data de la tabla
    
$mysql mysql_query("DELETE FROM skill15") or die ("Problemas al eliminar informacion. ".mysql_error());
    
    
//Cargar archivo y almacenarlo como texto
    
$archivo fopen("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt","r");

    
$textoarchivo show_source("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt",True);

    
//dividir la cabecera del contenido
    
$dividir=explode("\n",$textoarchivo);

    
//ejecutar expresion regular para obtener los datos
    
$resultado=preg_split('/[~~.~~]/'$dividir[1]);

    
$primeralinea=True;

    
//Creacion de la tabla
    
echo "<table border=1><tr>";
    echo 
"<td>Agent_name</td>";
    echo 
"<td>Login_id</td>";
    echo 
"<td>Extension</td>";
    echo 
"<td>State</td>";
    echo 
"<td>Time</td>";
    echo 
"<td>Acd_calls</td>";
    echo 
"<td>Ext_out_calls</td>";
    echo 
"<td>Ext_in_calls</td>";
    echo 
"</tr>";
    
$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_calls,ext_in_calls) VALUES (";

    
//contador para recorrer resultado expresion regular
    
foreach($resultado as $valor)
    {
        if(
$valor!=="<br>" && $valor!=="")
        {
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea)
            {
                
$primeralinea=False;
            }else
            {
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                
                foreach(
$linea as $final)
                {
                    if(
$final!=="," && $final!=="")
                    {
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador>7)
                        {    
                            
//FINAL DE TEXTO
                        
}
                        else
                        { 
                            
$contador++;
                            
$sql.="'".$final."',";
                            echo 
"<td>".$final."</td>";
                        }
                    }
                }
            
                echo 
"</tr>";
                
                
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql
                
$sql=trim($sql,",").")";

                
//EJECUTAR CONSULTA 
                
echo $sql."<br>";
                
                
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());
                
                
//$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES (";
            
}

            
//$actualizacion=mysql_query("UPDATE skill15 SET id_skill15=['id_skill15'],'agent_name'=['agent_name'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]WHERE id_skill15 = ['id_skill15']");
        
}
    }

    echo 
"</table><br>";

    
/*Inicia codigo para recuperar los otros dos datos*/
    
    //Creacion de la tabla
    
echo "<br />";
    echo 
"<table border=1>";
    echo 
"<tr>";
    echo 
"<td>Nuevo_campo_1</td>";
    echo 
"<td>Nuevo_campo_2</td>";
    echo 
"</tr>";
    
    
$resultado=preg_split('/^[.~~]/'$dividir[1]);
    
    foreach(
$resultado as $valor)
    {
        if(
$valor!=="<br>" && $valor!=="")
        {
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea)
            {
                
$primeralinea=False;
            }else
            {
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                
                foreach(
$linea as $final)
                {
                    if(
$final!=="," && $final!=="")
                    {
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador == || $contador == 5)
                        {    
                            echo 
"<td>".$final."</td>";
                        }
                        
                        
contador++;
                    }
                }
            
                echo 
"</tr>";
                echo 
"</table>";
                
            }
        }
    }
    
    
mysql_close($Link);
?>
  #21 (permalink)  
Antiguo 17/04/2012, 14:58
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Si funciona despues podrías refactorizar el código para que este mas ordenado.
  #22 (permalink)  
Antiguo 17/04/2012, 15:10
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Sonrisa Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Si funciona despues podrías refactorizar el código para que este mas ordenado.
me captura LAI_VOZ y 20 pero necesito q me capture
el que sigue despues de LAI_VOZ que es "0"y el que sigue despues de 20 que es "0:00"

:) gracias por tu ayuda
  #23 (permalink)  
Antiguo 17/04/2012, 15:14
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Jajajajaja

Listo:

Código PHP:
<?php
    
//Conexion BD
    
include ("conexion.php");
    
    
$Link=conexion();
    
    
//Elimina toda la data de la tabla
    
$mysql mysql_query("DELETE FROM skill15") or die ("Problemas al eliminar informacion. ".mysql_error());
    
    
//Cargar archivo y almacenarlo como texto
    
$archivo fopen("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt","r");

    
$textoarchivo show_source("../../../Documents and Settings/wrodrj/Escritorio/reportes/report_monitor_bcms_skill_15.txt",True);

    
//dividir la cabecera del contenido
    
$dividir=explode("\n",$textoarchivo);

    
//ejecutar expresion regular para obtener los datos
    
$resultado=preg_split('/[~~.~~]/'$dividir[1]);

    
$primeralinea=True;

    
//Creacion de la tabla
    
echo "<table border=1><tr>";
    echo 
"<td>Agent_name</td>";
    echo 
"<td>Login_id</td>";
    echo 
"<td>Extension</td>";
    echo 
"<td>State</td>";
    echo 
"<td>Time</td>";
    echo 
"<td>Acd_calls</td>";
    echo 
"<td>Ext_out_calls</td>";
    echo 
"<td>Ext_in_calls</td>";
    echo 
"</tr>";
    
$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_calls,ext_in_calls) VALUES (";

    
//contador para recorrer resultado expresion regular
    
foreach($resultado as $valor)
    {
        if(
$valor!=="<br>" && $valor!=="")
        {
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea)
            {
                
$primeralinea=False;
            }else
            {
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                
                foreach(
$linea as $final)
                {
                    if(
$final!=="," && $final!=="")
                    {
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador>7)
                        {    
                            
//FINAL DE TEXTO
                        
}
                        else
                        { 
                            
$contador++;
                            
$sql.="'".$final."',";
                            echo 
"<td>".$final."</td>";
                        }
                    }
                }
            
                echo 
"</tr>";
                
                
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql
                
$sql=trim($sql,",").")";

                
//EJECUTAR CONSULTA 
                
echo $sql."<br>";
                
                
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());
                
                
//$sql="INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES (";
            
}

            
//$actualizacion=mysql_query("UPDATE skill15 SET id_skill15=['id_skill15'],'agent_name'=['agent_name'],'login_id'=[login_id],'extension'=[extension],'state'=[state],'time'=[time],'acd_calls'=[acd_calls],'ext_out_calls'=[ext_out_calls],'ext_in_calls'=[ext_in_calls]WHERE id_skill15 = ['id_skill15']");
        
}
    }

    echo 
"</table><br>";

    
/*Inicia codigo para recuperar los otros dos datos*/
    
    //Creacion de la tabla
    
echo "<br />";
    echo 
"<table border=1>";
    echo 
"<tr>";
    echo 
"<td>Nuevo_campo_1</td>";
    echo 
"<td>Nuevo_campo_2</td>";
    echo 
"</tr>";
    
    
$resultado=preg_split('/^[.~~]/'$dividir[1]);
    
    foreach(
$resultado as $valor)
    {
        if(
$valor!=="<br>" && $valor!=="")
        {
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea)
            {
                
$primeralinea=False;
            }else
            {
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                
                foreach(
$linea as $final)
                {
                    if(
$final!=="," && $final!=="")
                    {
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador == || $contador == 6)
                        {    
                            echo 
"<td>".$final."</td>";
                        }
                        
                        
contador++;
                    }
                }
            
                echo 
"</tr>";
                echo 
"</table>";
                
            }
        }
    }
    
    
mysql_close($Link);
?>
  #24 (permalink)  
Antiguo 17/04/2012, 15:28
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Sonrisa Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Si funciona despues podrías refactorizar el código para que este mas ordenado.
me captura LAI_VOZ y 20 pero necesito q me capture
el que sigue despues de LAI_VOZ que es "0"y el que sigue despues de 20 que es "0:00"

:) gracias por tu ayuda
  #25 (permalink)  
Antiguo 17/04/2012, 15:32
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Esta porción de código es la que se encarga de recuperar únicamente los campos que deseas, puedes cambiar los valores "4" y "6" por algún otro número entre el rango 1 y14 y decirme si el resultado es distinto? Si es distinto debería de funcionar de esta forma puesto que el valor "0" que necesitas se encuentra en la posición 4 del array que crea la función preg_split y el valor "0:00" se encuentra en la posición 6 del mismo array.

Código PHP:
Ver original
  1. if($contador == 4 || $contador == 6)
  2.                         {    
  3.                             echo "<td>".$final."</td>";
  4.                         }
  #26 (permalink)  
Antiguo 17/04/2012, 16:16
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Esta porción de código es la que se encarga de recuperar únicamente los campos que deseas, puedes cambiar los valores "4" y "6" por algún otro número entre el rango 1 y14 y decirme si el resultado es distinto? Si es distinto debería de funcionar de esta forma puesto que el valor "0" que necesitas se encuentra en la posición 4 del array que crea la función preg_split y el valor "0:00" se encuentra en la posición 6 del mismo array.

Código PHP:
Ver original
  1. if($contador == 4 || $contador == 6)
  2.                         {    
  3.                             echo "<td>".$final."</td>";
  4.                         }
gracias ahora tengo q revisar un problema por q cuando el segundo dato se guarda en la bd se me cambia a 11o70 jaja no c por que

gracias por tu ayuda
  #27 (permalink)  
Antiguo 17/04/2012, 16:22
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Que bien que ya funciono! :D el problema para guardar el "0:00" podrá ser por cuestiones de tipo de dato? ya que puedes almacenarlo como texto o como fecha dependiendo de para que lo vayas a utilizar.
  #28 (permalink)  
Antiguo 17/04/2012, 17:15
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Que bien que ya funciono! :D el problema para guardar el "0:00" podrá ser por cuestiones de tipo de dato? ya que puedes almacenarlo como texto o como fecha dependiendo de para que lo vayas a utilizar.
lo guarde como tipo texto :( voy a probar con uno que aparezca en 1:00 aver que pasa si no funciona te comento


gracias ;)
  #29 (permalink)  
Antiguo 18/04/2012, 08:41
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Sonrisa Respuesta: sobrescribir base de datos

Cita:
Iniciado por mike28gt Ver Mensaje
Que bien que ya funciono! :D el problema para guardar el "0:00" podrá ser por cuestiones de tipo de dato? ya que puedes almacenarlo como texto o como fecha dependiendo de para que lo vayas a utilizar.

me aparece este error al intentar guardarlo en la bd sabes que es
problemas en el insertColumn count doesn't match value count at row 1

gracias
  #30 (permalink)  
Antiguo 18/04/2012, 09:13
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: sobrescribir base de datos

Verifica que los nombres de las variables que tienes en tu sentencia de INSERT sean correctas. Esto suele pasar cuando un nombre de variable no es correcto.

Etiquetas: registro, sobrescribir
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 10:46.