Foros del Web » Programando para Internet » PHP »

Problemas con Array

Estas en el tema de Problemas con Array en el foro de PHP en Foros del Web. Hola amigos, tengo un problema y espero me puedan ayudar!!! Estoy generando un reporte en el cual me aparece una lista con varios conceptos digamos ...
  #1 (permalink)  
Antiguo 13/10/2010, 11:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Problemas con Array

Hola amigos, tengo un problema y espero me puedan ayudar!!! Estoy generando un reporte en el cual me aparece una lista con varios conceptos digamos Truck y Total y lo q necesito hacer es agrupar los registros q tengan el mismo concepto digamos en este caso el concepto (Truck) y al final me de un subtotal que sume los Totales.. digamos
truck# total
28 100
subtotal 100
29 100
29 150
subtotal 250

y asi sucesivamente hasta q ya no aigan mas conceptos


EL codigo q uso para generar el reporte es este:

$registros2=mysql_query("select invotemp.*, ite.* from invoicestemp invotemp, items ite where invotemp.driver='$_REQUEST[idtruck]' and invotemp.item=ite.item and invotemp.ccost=ite.ccost and invotemp.date>='$_REQUEST[fechaini]' and invotemp.date<='$_REQUEST[fechafin]'",$link);
$num_registros=mysql_num_rows($registros2);
if ($num_registros==0)
{
$mensaje="No hay Items";
}
?>
<table width="100%" align="center">
<tr align="center">
<td width="8%"><div class="marco">Date</div></td>
<td width="12%"><div class="marco">Customer</div></td>
<td width="5%"><div class="marco">Truck #</div></td>
<td width="6%"><div class="marco">Ticket #</div></td>
<td width="12%"><div class="marco">From</div></td>
<td width="12%"><div class="marco">To</div></td>
<td width="6%"><div class="marco">L/T/H</div></td>
<td width="6%"><div class="marco">Rate</div></td>
<td width="6%"><div class="marco">Amount</div></td>
<td width="6%"><div class="marco">Total</div></td>

</tr>
<?php while ($fila=mysql_fetch_array($registros2))
{
?>
<tr align="center">
<td><?php echo $fila['date'];?></td>
<td><?php echo $fila['customer'];?></td>
<td><?php echo $fila['truck'];?></td>
<td><?php echo $fila['ticket'];?></td>
<td><?php echo $fila['fromitem'];?></td>
<td><?php echo $fila['toitem'];?></td>
<td><?php echo $fila['lth'];?></td>
<td><?php echo $fila['cbd'];?></td>
<td><?php $amount=$fila['lth']*$fila['cbd']; echo $amount;?> </td>
<td><?php $porcent=90; $porcent2=$porcent/100; $amount2=$amount*$porcent2; echo $amount2;?></td>
</tr>
<?php
}?>
</table>

Espero me aiga explicado y alguien me pueda ayudar..
  #2 (permalink)  
Antiguo 13/10/2010, 11:49
 
Fecha de Ingreso: octubre-2010
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con Array

puedes plantiar mejor .. no entiendo mucho ...
asi te ayudare sin problemas
  #3 (permalink)  
Antiguo 13/10/2010, 12:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con Array

si claro gracias...

Lo q pasa es q genero un reporte sobre un Trabajo que hacen uno camiones de construccion, en ese reporte aparecen la Fecha, Num De Camion, Distancia recorrida, el Precio y el Total. Cuando genero el reporte sobre un Trabajo en especial aparecen todos los camiones q trabajaron en el con sus respectivos valores. Y lo q me piden es q muestre el subtotal por cada camion ya que un camion pudo haber tarabajado en ese Trabajo varios dias.. Nose si me aiga explicado mejor.. el ejemplo seria este

Fecha / Num Camion / Distancia / Total
01/04/10 300 villa park 300
01/05/10 300 addsions rd 300
subtotal 600

01/10/10 301 villa park 200
subtotal 200

el caso es q se agrupen los valores del mismo camion se sumen sus totales y mustre un subtotal

espero me aiga explicado mejor sino lo vuelvo hacer hasta q me explique mejor jaja

gracias por ayudar
  #4 (permalink)  
Antiguo 13/10/2010, 13:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con Array

Código PHP:
Ver original
  1. $num_registros=mysql_num_rows($registros2);
  2. if ($num_registros==0)
  3.     {
  4.         $mensaje="No hay Items";
  5.     }else{
  6.  
  7.         echo "<table width='100%' align='center'>
  8.                 <tr align='center'>
  9.                     <td width='8%'><div class='marco'>Date</div></td>
  10.                     <td width='12%'><div class='marco'>Customer</div></td>
  11.                     <td width='5%'><div class='marco'>Truck #</div></td>
  12.                     <td width='6%'><div class='marco'>Ticket #</div></td>
  13.                     <td width='12%'><div class='marco'>From</div></td>
  14.                     <td width='12%'><div class='marco'>To</div></td>
  15.                     <td width='6%'><div class='marco'>L/T/H</div></td>
  16.                     <td width='6%'><div class='marco'>Rate</div></td>
  17.                     <td width='6%'><div class='marco'>Amount</div></td>
  18.                     <td width='6%'><div class='marco'>Total</div></td>
  19.                 </tr>";
  20.         while ($fila=mysql_fetch_array($registros2)) {
  21.                  if ($fila['id_camion']<>$antiguo_camion){
  22.                      echo $subtotal;
  23.                      $subtotal=0;
  24.                      $antiguo_camion = $fila['id_camion'];
  25.                 }else{
  26.                     $subtotal=$subtotal + $fila['cantidad'];
  27.                     echo "<tr align='center'>
  28.                             <td>".$fila['date']."></td>
  29.                             <td>".$fila['customer']."</td>
  30.                             <td>".$fila['truck']."</td>
  31.                             <td>".$fila['ticket']."</td>
  32.                             <td>".$fila['fromitem']."</td>
  33.                             <td>".$fila['toitem']."</td>
  34.                             <td>".$fila['lth']."</td>
  35.                             <td>".$fila['cbd']."</td>
  36.                          </tr>";
  37.                    
  38.                
  39.                 }
  40.             }

Mmmmm .... no entendi los ultimos dos campos que imprimias
$fila['id_camion'] = ese seria el campo de la id de camion ...
y $subtotal el subtotal obviamente ...
recomendacion un "ORDER BY ( POR LA ID DE CAMION )" en la consulta ....
y si puedes usar :

Select * from invoicestemp invotemp
inner join items ite ON invotemp.item = ite.item and invotemp.ccost = ite.ccost
WHERE invotemp.date>='$_REQUEST[fechaini]'
and invotemp.date<='$_REQUEST[fechafin]'
ORDER BY (ID CAMION)"
esa consulta creo estaria mejor y hace lo mismo .. si entendi bien ! xD
  #5 (permalink)  
Antiguo 13/10/2010, 13:50
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con Array

Muchisimas gracias ditin por ayudarme solo q nose bien como aplicarlo a mi programacion jeje ya que asi como me lo mandas lo aplico y me aparcen 2 errores de variables no definidas $antiguo_camion y $subtotal,

Mira asi es como tengo yo el codigo completo

Código PHP:
Ver original
  1. <body>
  2. <h1><center>
  3.   Payment Report
  4. </center></h1>
  5. Martinez Frog's Inc.<br />
  6. 5815 Burr Oak Ave.<br />
  7. Berkeley, IL. 60163<P>
  8. Subcontractors<p>
  9.  
  10. <div id="invoice2">
  11.  <form>
  12.  <?php
  13.  $registros2=mysql_query("select invotemp.*, ite.* from invoicestemp invotemp,
  14. items ite where invotemp.driver='$_REQUEST[idtruck]' and invotemp.item=ite.item
  15. and invotemp.ccost=ite.ccost and invotemp.date>='$_REQUEST[fechaini]'
  16. and invotemp.date<='$_REQUEST[fechafin]' order by truck",$link);
  17.  
  18. ?>
  19.    <table width="100%" align="center">
  20.     <tr align="center">
  21.       <td width="8%"><div class="marco">Date</div></td>
  22.       <td width="12%"><div class="marco">Customer</div></td>    
  23.       <td width="5%"><div class="marco">Truck #</div></td>
  24.       <td width="6%"><div class="marco">Ticket #</div></td>
  25.       <td width="12%"><div class="marco">From</div></td>
  26.       <td width="12%"><div class="marco">To</div></td>
  27.       <td width="6%"><div class="marco">L/T/H</div></td>
  28.       <td width="6%"><div class="marco">Rate</div></td>
  29.       <td width="6%"><div class="marco">Amount</div></td>
  30.       <td width="6%"><div class="marco">Total</div></td>
  31.     </tr>
  32.      <?php
  33.      while ($fila=mysql_fetch_array($registros2))
  34.   {
  35.     ?>
  36.     <tr align="center">
  37.     <td><?php echo $fila['date'];?></td>  
  38.     <td><?php echo $fila['customer'];?></td>
  39.     <td><?php echo $fila['truck'];?></td>
  40.     <td><?php echo $fila['ticket'];?></td>
  41.     <td><?php echo $fila['fromitem'];?></td>
  42.     <td><?php echo $fila['toitem'];?></td>
  43.     <td><?php echo $fila['lth'];?></td>
  44.     <td><?php echo $fila['cbd'];?></td>
  45.     <td><?php $amount=$fila['lth']*$fila['cbd']; echo $amount;?> </td>
  46.     <td><?php $porcent=90; $porcent2=$porcent/100; $amount2=$amount*$porcent2; echo $amount2;?></td>
  47.     </tr>
  48.     <?php      
  49.     }
  50.     ?>
  51.    </table>
  52.  
  53. </form>
  54.  
  55. Return Home Page <a href="Home.php"><img src="home2.png" width="40" height="40" style="border:none" /></a>
  56. </div>
  57. </body>
  58. </html>

Qusiera poder mostrarte una caputara de pantalla del resultado q me da este codigo y otra de como lo necesito pero no se como poner las capturas aki

gracias y gracias por tu recomendaciones eres muy buen programador!!
  #6 (permalink)  
Antiguo 13/10/2010, 14:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con Array

Cita:
Iniciado por troyer4 Ver Mensaje
Muchisimas gracias ditin por ayudarme solo q nose bien como aplicarlo a mi programacion jeje ya que asi como me lo mandas lo aplico y me aparcen 2 errores de variables no definidas $antiguo_camion y $subtotal,
Prueba setiando :
$antiguo_camion="";
$subtotal= 0;

antes del While :)

estoy un poco ocupado mas tardesito le doy mas antencion
  #7 (permalink)  
Antiguo 13/10/2010, 14:06
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con Array

ok muchas gracias deja checo como me dices, mientras busco la manera de poner las capturas!!
  #8 (permalink)  
Antiguo 13/10/2010, 14:06
 
Fecha de Ingreso: octubre-2010
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con Array

PD: trata de no mezclar tanto html con php ... haciendo los <?php y ?> se hace confuso mejor despliega el HTML con "echo" como lo hice yo ....
  #9 (permalink)  
Antiguo 13/10/2010, 14:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con Array

ok deja lo cambio!!

Mira asi como tengo ahorita el reporte

Última edición por troyer4; 13/10/2010 a las 14:16
  #10 (permalink)  
Antiguo 13/10/2010, 15:01
 
Fecha de Ingreso: octubre-2010
Mensajes: 29
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con Array

No veo .. nada
  #11 (permalink)  
Antiguo 13/10/2010, 15:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con Array

mmm pues pongo el link pero parece q no muestra la imagen, si gustas te puedo mandar la imagen a tu correo!!
  #12 (permalink)  
Antiguo 14/10/2010, 09:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 22
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problemas con Array

Lo q necesito es controlar el ciclo q me genera el reporte, necesito q agrupe por numeros de camion y me muestre el subtotal de esos camiones.

ejemplo:

Truck# Total
514 300
514 200
subtotal 500

525 300
subtotal 300

587 100
587 200
subtotal 300

Este es el cliclo con el q genero el reporte:

$registros2=mysql_query("select invotemp.*, ite.* from invoicestemp invotemp, items ite where invotemp.brodri='$_REQUEST[idtruck]' and invotemp.item=ite.item and invotemp.ccost=ite.ccost and invotemp.date>='$_REQUEST[fechaini]' and invotemp.date<='$_REQUEST[fechafin]' order by truck",$link);

while ($fila=mysql_fetch_array($registros2)) {
echo "<tr align='center'>
<td>".$fila['date']."</td>
<td>".$fila['customer']."</td>
<td>".$fila['truck']."</td>
<td>".$fila['ticket']."</td>
<td>".$fila['fromitem']."</td>
<td>".$fila['toitem']."</td>
<td>".$fila['lth']."</td>
<td>".$fila['cbd']."</td>
<td>".$fila['amount']."</td>
</tr>";

Creo q haciendo un ciclo for puedo controlar el ciclo y q compare el primer registro con los demas y despues el segundo con los demas y asi hasta q termine y agrupe los q son del mismo numero de camion (Truck #), solo q no se como colocar el For??????

Etiquetas: Ninguno
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 14:01.