需要在PHP上运行3个使用上一个查询结果的查询

时间:2017-01-03 16:12:00

标签: php mysql stored-procedures

我正在创建一个网站,向公司的某些人显示特定记录。我正在使用PHP,HTML和MYSLQ来创建它。

这是我试图提出的基本布局:

这是一个html网站,每行都有2个级别的可折叠行:

参考编号>参赛作品>发票

因此,在此逻辑中,参考编号可以包含一个或多个条目条目可以包含一个或多个发票即可。

html表格没什么问题,问题是将数据输入网站。

我是如何工作的......

使用PHP我创建了一个程序,首先在数据库中查询引用,然后执行while循环以完成引用,然后使用参考号码我查询条目并执行while循环以查看它们并使用条目编号查询发票

现在,我是一名业余编码员,但我确实知道将查询置于while循环中是非常糟糕的做法。所以我正在努力使这项工作正常进行。

此外,我希望通过使用存储过程来实现这一点,以便所有查询都在mysql服务器上进行,而不是在客户端进行。

以下是查询:

查询1(主要级别):

SELECT  
oc.sNumCajaTrailer AS Caja,  
oc.dFechaCruce AS FechaSalida,  
t.sNombre AS Transportista, 
tfc.sCveTrafico AS Reference <--- This is the key for the next query

FROM cb_detalle_orden_carga doc

JOIN cb_orden_carga oc ON doc.iConsecutivoOrdenCarga = oc.iConsecutivo 
JOIN cu_transfer t ON oc.sCveTransfer = t.sCveTransfer 
JOIN cb_trafico tfc ON doc.sCveTrafico = tfc.sCveTrafico 
JOIN cu_cliente cte ON tfc.sCveCliente = cte.sCveCliente

WHERE  
(oc.dFechaCruce IS NULL OR oc.dFechaCruce IN (fechaSalida)) 
AND tfc.sCveCliente = 'CLT_6840' AND (doc.sCveTrafico LIKE '%N16%' OR doc.sCveTrafico LIKE '%N17%')

GROUP BY doc.sCveTrafico

查询2(FirstSubLevel)

SELECT  b.sCveEntradaBodega AS Entry, <----- This is the key for next query 
        cp.sNombreProveedor AS NombreProveedor, 
        b.dFechaIngreso AS FechaIngreso,
        b.iCantidadBultos AS Bultos,
        cb.sDescripcion AS TipoBultos

FROM cb_bulto b

JOIN cb_entrada_bodega eb ON b.sCveEntradaBodega = eb.sCveEntradaBodega
JOIN cu_cliente_proveedor cp ON eb.sCveProveedor = cp.sCveProveedor
    AND cp.sCveCliente = eb.sCveCliente
JOIN cb_detalle_orden_carga doc ON b.iConsecutivo = doc.iConsecutivoBulto
JOIN cb_orden_carga oc ON doc.iConsecutivoOrdenCarga = oc.iConsecutivo
JOIN ct_bulto cb ON b.sCveBulto = cb.sCveBulto

WHERE b.sCveTrafico = Reference

查询3(第二次和最后一次级别)

SELECT  
f.sNumero AS numFactura,
eb.sNumTalon AS numGuia,
pf.sCveClienteProveedorProducto AS numParte,
pf.iCantidadProducto AS cantidadProducto,
f.sNumeroPedido AS numOrden,
b.iCantidadBultos AS cantidadBultos,
tb.sDescripcion AS tipoBultos

FROM

cb_bulto b

JOIN cb_relacion_remesa_banco_facturas rbf ON b.iConsecutivo = rbf.iConsecutivoBulto
JOIN cb_factura f ON rbf.iFolio = f.iFolio
JOIN cb_entrada_bodega eb ON b.sCveEntradaBodega = eb.sCveEntradaBodega
JOIN cb_producto_factura pf ON f.iFolio = pf.iFolio
JOIN ct_bulto tb ON b.sCveBulto = tb.sCveBulto

WHERE

b.sCveEntradaBodega = Entry

任何想法???? !!!!

0 个答案:

没有答案