Foros del Web » Programando para Internet » PHP »

Consulta Query no se realiza completamente

Estas en el tema de Consulta Query no se realiza completamente en el foro de PHP en Foros del Web. Buen día. Estoy realizando una consulta mysql, insert select, el problema es que de 180,000 datos que se tienen que insertar por sucursal, máximo me ...
  #1 (permalink)  
Antiguo 12/11/2013, 13:04
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 11 años
Puntos: 0
Consulta Query no se realiza completamente

Buen día.

Estoy realizando una consulta mysql, insert select, el problema es que de 180,000 datos que se tienen que insertar por sucursal, máximo me inserta 9,000.

Podrían ayudarme?

Código PHP:
$query1="SELECT
            unidades.id,
            unidades.codigo,
            unidades.nombre,
            unidades.tipo 
        FROM
            unidades
        WHERE
            unidades.codigo != 'MANAGER'
        AND
            unidades.codigo != ''
        ORDER BY
            unidades.id ASC"
;
$sql1=mysql_query($query1);
while(
$row1=mysql_fetch_row($sql1))
    {
        if(
$row1[3]=="PLANTA")
        {
            
$store=$row1[2];
        }else
        {
            
$selectsucursal="SELECT
                relaciones_uniones.id_relacion,
                relaciones.id_planta,
                unidades.nombre as nombre
            FROM
                relaciones_uniones
            Inner Join relaciones on relaciones.id=relaciones_uniones.id_relacion
            Inner Join unidades on relaciones.id_planta=unidades.id
            WHERE
                relaciones_uniones.id_sucursal='"
.$row1[0]."'
            ORDER BY
                relaciones.fecha DESC"
;
            
$sqlsucursal=mysql_query($selectsucursal);
            while(
$rowntea=mysql_fetch_row($sqlsucursal))
            {
                
$store=$rowntea[2];
                break;
            }
        }
        
        
        
$query2="INSERT INTO
                    kpi
                    (ciudad, planta, sucursal, canal, orden, ticket, tipo_orden, fecha_elaboracion, fecha_promesa, fecha_finalizacion, fecha_entrega, lote, tiempo_de_ciclo, usuario, cliente, direccion, colonia, municipio, cp, telefono, creditos, alta, total_prendas, tipo, descripcion, cantidad, color, precio_unitario, importe, subtotal, credito_usado, descuento, efectivo, estatus_transaccion, cambio, total, estatus)
                SELECT 
                    'Guadalajara',
                    '"
.$store."',
                    '"
.$row1[2]."',
                    '"
.$row1[3]."',
                    "
.strtolower($row1[1])."_prendas_tickets.id_orden as orden,
                    "
.strtolower($row1[1])."_prendas_tickets.id_ticket as ticket,
                    'Venta',
                    "
.strtolower($row1[1])."_tickets.fecha_aper as fecha_elaboracion,
                    "
.strtolower($row1[1])."_tickets.fecha_promesa as fecha_promesa,
                    "
.strtolower($row1[1])."_tickets.fecha_asignacion as fecha_finalizacion,
                    "
.strtolower($row1[1])."_tickets.fecha_entrega as fecha_entrega,
                    "
.strtolower($row1[1])."_tickets.id_lote as lote,
                    ((lotes.hora_final)-(lotes.hora_inicio)) as tiempo_de_ciclo,
                    "
.strtolower($row1[1])."_ordenes.atendio as usuario,
                    "
.strtolower($row1[1])."_ordenes.nombre as cliente,
                    clientes.direccion as direccion,
                    clientes.colonia as colonia,
                    clientes.ciudad as municipio,
                    clientes.cp as cp,
                    "
.strtolower($row1[1])."_ordenes.telefono as telefono,
                    clientes.credito as creditos,
                    clientes.fecha as alta,
                    clientes.prendas as total_prendas,
                    'Prenda',
                    "
.strtolower($row1[1])."_prendas_tickets.prenda as descripcion,
                    "
.strtolower($row1[1])."_prendas_tickets.cant as cantidad,
                    "
.strtolower($row1[1])."_prendas_tickets.color as color,
                    "
.strtolower($row1[1])."_prendas_tickets.precio_unitario as precio_unitario,
                    "
.strtolower($row1[1])."_prendas_tickets.importe as importe,
                    "
.strtolower($row1[1])."_ordenes.subtotal as subtotal,
                    "
.strtolower($row1[1])."_ordenes.credito as credito_usado,
                    "
.strtolower($row1[1])."_ordenes.frecuente as descuento,
                    "
.strtolower($row1[1])."_ordenes.pago as efectivo,
                    "
.strtolower($row1[1])."_ordenes.corte as estatus_transaccion,
                    "
.strtolower($row1[1])."_ordenes.cambio as cambio,
                    "
.strtolower($row1[1])."_ordenes.total as total,
                    "
.strtolower($row1[1])."_tickets.estatus as estatus
                FROM
                    "
.strtolower($row1[1])."_prendas_tickets
                Inner Join "
.strtolower($row1[1])."_tickets on ".strtolower($row1[1])."_tickets.id=".strtolower($row1[1])."_prendas_tickets.id_ticket
                Inner Join "
.strtolower($row1[1])."_ordenes on ".strtolower($row1[1])."_ordenes.id=".strtolower($row1[1])."_prendas_tickets.id_orden
                Inner Join clientes on clientes.telefono="
.strtolower($row1[1])."_ordenes.telefono
                Inner Join lotes on lotes.id="
.strtolower($row1[1])."_tickets.id_lote
                WHERE
                    "
.strtolower($row1[1])."_tickets.fecha_aper>'2012-01-01'
                    AND
                    "
.strtolower($row1[1])."_tickets.fecha_aper<'2013-11-12'
                ORDER BY
                    "
.strtolower($row1[1])."_tickets.fecha_aper ASC
                    "
;
                    
mysql_query($query2);
            echo 
$row1[2]." ".mysql_affected_rows()."<br/>";
    }
echo 
mysql_error(); 
  #2 (permalink)  
Antiguo 12/11/2013, 15:09
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Consulta Query no se realiza completamente

Holas, agamc1993.

Haz depuración de tu código imprimiendo la sentencia INSERT por cada iteración del while que estás recorriendo. Tal vez no está iterando todas las veces que piensas, o hay un error en la formación de la consulta, etc.

Aparte, estás haciendo muchas consultas dentro de otras consultas, y no las cierras con mysql_free_result. Te recomiendo que cierres la $sqlsucursal apenas te sales de su while, y también por si acaso, asigna el resultado de mysql_query($query2) a una variable, para que no se confunda la cosa...

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 22/11/2013, 10:35
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 11 años
Puntos: 0
Respuesta: Consulta Query no se realiza completamente

Buen día.

Ya realicé dichas correcciones, a tal grado que solo quedó un solo query, el problema es que sigue saltando valores.

Ya copié el query directo en la consola y pasa lo mismo, por lo que creo que el problema no es del código PHP :S alguien tiene alguna solución? D:

el query es el siguiente

INSERT INTO
kpi (ciudad, planta, sucursal, canal, orden, ticket, tipo_orden, fecha_elaboracion, fecha_promesa, fecha_finalizacion, fecha_entrega, lote, tiempo_de_ciclo, usuario, cliente, direccion, colonia, municipio, cp, telefono, creditos, alta, total_prendas, tipo, descripcion, cantidad, color, precio_unitario, importe, subtotal, credito_usado, descuento, efectivo, estatus_transaccion, cambio, total, estatus)
SELECT
'Guadalajara',
'Manuel Acuña',
'Manuel Acuña',
'Planta',
maa001_prendas_tickets.id_orden as orden,
maa001_prendas_tickets.id_ticket as ticket,
'Venta',
maa001_tickets.fecha_aper as fecha_elaboracion,
maa001_tickets.fecha_promesa as fecha_promesa,
maa001_tickets.fecha_asignacion as fecha_finalizacion,
maa001_tickets.fecha_entrega as fecha_entrega,
maa001_tickets.id_lote as lote,
((lotes.hora_final)-(lotes.hora_inicio)) as tiempo_de_ciclo,
maa001_ordenes.atendio as usuario,
maa001_ordenes.nombre as cliente,
clientes.direccion as direccion,
clientes.colonia as colonia,
clientes.ciudad as municipio,
clientes.cp as cp,
maa001_ordenes.telefono as telefono,
clientes.credito as creditos, clientes.fecha as alta,
clientes.prendas as total_prendas,
'Prenda',
maa001_prendas_tickets.prenda as descripcion,
maa001_prendas_tickets.cant as cantidad,
maa001_prendas_tickets.color as color,
maa001_prendas_tickets.precio_unitario as precio_unitario,
maa001_prendas_tickets.importe as importe,
maa001_ordenes.subtotal as subtotal,
maa001_ordenes.credito as credito_usado,
maa001_ordenes.frecuente as descuento,
maa001_ordenes.pago as efectivo,
maa001_ordenes.corte as estatus_transaccion,
maa001_ordenes.cambio as cambio,
maa001_ordenes.total as total,
maa001_tickets.estatus as estatus
FROM
maa001_prendas_tickets
Inner Join maa001_tickets on maa001_tickets.id=maa001_prendas_tickets.id_ticket
Inner Join maa001_ordenes on maa001_ordenes.id=maa001_prendas_tickets.id_orden
Inner Join clientes on clientes.telefono=maa001_ordenes.telefono Inner Join lotes on lotes.id=maa001_tickets.id_lote
ORDER BY
maa001_tickets.fecha_aper
ASC

Etiquetas: fecha, mysql, query, select, sql
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 19:53.