Foros del Web » Programando para Internet » PHP »

Recorrer dos arreglos generados con mysql_fetch_array()

Estas en el tema de Recorrer dos arreglos generados con mysql_fetch_array() en el foro de PHP en Foros del Web. Buen dia a todos..... Les describo mi problema y espero me puedan ayudar a resolverlo... Tengo dos consultas a mi base de datos $consulta1 (de ...
  #1 (permalink)  
Antiguo 22/12/2010, 10:45
 
Fecha de Ingreso: noviembre-2010
Ubicación: The Sky
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Recorrer dos arreglos generados con mysql_fetch_array()

Buen dia a todos.....

Les describo mi problema y espero me puedan ayudar a resolverlo...

Tengo dos consultas a mi base de datos $consulta1 (de la tabla de Salidas de insumos) y $consulta2 (de la tabla de Entradas de insumos), necesito imprimir los resultados simultaneamente, lo hago con un while de la siguiente forma:

Código PHP:
while($row_Sal=mysql_fetch_array($consulta1) || $row_Ent=mysql_fetch_array($consulta2))
{
        echo 
"Salida: ".$row_Sal["Nom_Salida"]."Entrada: ".$row_Ent["Nom_Entrada"];

Debe de arrojar 21 filas cada una con su dato correspondiente, dependiendo de si esta en la tabla de entrada o de salida.

El resultado me da las 21 filas, pero solo me muestra los datos de la tabla de Entradas...

Espero me puedan ayudar... mil gracias...
  #2 (permalink)  
Antiguo 22/12/2010, 10:53
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 11 meses
Puntos: 51
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

Probá cambiando el OR ( || ) por un AND (&&).

O sacar la segunda condición y ponerla dentro del while:

Código PHP:
Ver original
  1. while($row_Sal=mysql_fetch_array($consulta1))
  2. {
  3.         $row_Ent=mysql_fetch_array($consulta2);
  4.         echo "Salida: ".$row_Sal["Nom_Salida"]."Entrada: ".$row_Ent["Nom_Entrada"];
  5. }
  #3 (permalink)  
Antiguo 22/12/2010, 10:58
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

No estoy seguro pero asi a primera vista me da la impresión de que al ejecutarse la comprobación del $row_sal ya no hace la otra ($row_ent) si lo haces así por que quieres tomar una fila de cada tabla, te sugiero cambies el bucle, por algo como esto:
Código PHP:
Ver original
  1. $r_s=1;
  2. $r_e=1;
  3. while($r_s==1 || $r_e==1 ){
  4.    if(!$row_Sal=mysql_fetch_array($consulta1))
  5.        $r_s=0;
  6.    if(!$row_Ent=mysql_fetch_array($consulta2))
  7.        $r_e=0;
  8. }

y luego mostrar los datos pertinentes.
  #4 (permalink)  
Antiguo 22/12/2010, 10:59
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

Saludos

Código PHP:
Ver original
  1. while($row_Sal=mysql_fetch_array($consulta1))
  2. {
  3.     // $var=$row_Sal["idConsulta1"];
  4.     //Realizas la consulta 2 dependiendo de la llave con la que se unan
  5.    // $consulta2="SELECT * FROM table WHERE campo='$var'";
  6.      $row_Ent=mysql_fetch_array($consulta2)
  7.       echo "Salida: ".$row_Sal["Nom_Salida"]."Entrada: ".$row_Ent["Nom_Entrada"];
  8. }
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 22/12/2010, 11:14
 
Fecha de Ingreso: noviembre-2010
Ubicación: The Sky
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

walterdevel: No puedo cambiar or por and porque si lo hago solo me recorre un arreglo.

walterdevel y Nano_: tampoco puedo llamar al array de Entradas dentro del while, porque por cada entrada me imprimira todas las salidas, y esa no es la idea,

ocp001a: Si deseo tomar la primera fila de ambas tablas e imprimirlas y asi hasta llegar al final tomare tu idea a ver si me funciona

ya les digo que tal me fue...

Cita:
Iniciado por ocp001a Ver Mensaje
No estoy seguro pero asi a primera vista me da la impresión de que al ejecutarse la comprobación del $row_sal ya no hace la otra ($row_ent) si lo haces así por que quieres tomar una fila de cada tabla, te sugiero cambies el bucle, por algo como esto:
Código PHP:
Ver original
  1. $r_s=1;
  2. $r_e=1;
  3. while($r_s==1 || $r_e==1 ){
  4.    if(!$row_Sal=mysql_fetch_array($consulta1))
  5.        $r_s=0;
  6.    if(!$row_Ent=mysql_fetch_array($consulta2))
  7.        $r_e=0;
  8. }

y luego mostrar los datos pertinentes.
Lo siento pero ya revise tu idea y no la entendi....

Explico de otra forma lo que deseo obtener para que puedan ayudarme mejor.....

Tengo tres tablas una donde entan guardados los insumos y las otras dos, una donde se registran las entradas y una donde se registran las salidas de dichos insumos. Entonces por cada articulo deseo que me muestre todas sus entradas y todas sus salidas de forma que me quede algo asi como:

Código PHP:
  FECHA          ENTRADAS          SALIDAS
3
-12-2010          0                     1              
5
-12-2010          5                     2
9
-12-2010          2                     0 
Pero como ya dije anteriormente no logro recorrer los dos arreglos simultaneamente, quiero recorrerlos asi por si uno es mayor que otro, no me deje ninguna salida o entrada fuera de la tabla

Última edición por flor_2711; 22/12/2010 a las 11:36
  #6 (permalink)  
Antiguo 22/12/2010, 13:15
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

Saludos

Y por que no los realizas directamente desde una sola sentencia SQL?, si es posible postea la estructura de tus tablas!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 22/12/2010, 13:46
 
Fecha de Ingreso: noviembre-2010
Ubicación: The Sky
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

Ok voy a probar de nuevo juntando las consultas, y espero que asi pueda obtener los resultados deseados mil gracias por la ayuda sos un amor..

Ya intente con tu propuesta, pero no pude porque me salen repetidos los registros o solo me salen los que estan en ambas tablas, aunque le ponga el OR, mis tablas son:
ENTRADAS
Cod_A
Cod_RE
Cantidad
Precio_U
Precio_T

SALIDAS
Cod_A
Cod_RS
Cantidad

INSUMOS
Cod_A
Nombre_A
Descripcion
Stock

Última edición por flor_2711; 22/12/2010 a las 14:55
  #8 (permalink)  
Antiguo 22/12/2010, 15:48
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Recorrer dos arreglos generados con mysql_fetch_array()

Saludos

Código PHP:
Ver original
  1. SELECT fecha, SUM(e.cantidad) entrada, SUM (s.cantidad) salida
  2. FROM  insumos i
  3. LEFT OUTER JOIN entradas e ON i.cod_a=e.cod_a
  4. LEFT OUTER JOIN salidas s ON i.cod_a=s.cod_a
  5. GROUP BY fecha
El campos fecha no se de donde sale por eso los posteo de esa manera

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 22/12/2010 a las 16:06

Etiquetas: arreglos, dos, recorrer
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 06:14.