Foros del Web » Programando para Internet » PHP »

Trabajar con arrays

Estas en el tema de Trabajar con arrays en el foro de PHP en Foros del Web. Buenos dias/tardes. Estoy usando una consulta que devuelve si hay equipo local o no en una partido para un determinado árbitro. Si no hay equipo ...
  #1 (permalink)  
Antiguo 26/04/2014, 09:48
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Trabajar con arrays

Buenos dias/tardes. Estoy usando una consulta que devuelve si hay equipo local o no en una partido para un determinado árbitro. Si no hay equipo local se entiende que no hay partido por lo que si ese árbitro no está relacionado a ningún partido entronces no se deberá mostrar. Para comprobar esto tengo la consulta que guarda en 6 array (si el árbitro es principal, auxiliar, anotador, crono, operario de posesion o lleva coche). En cada array se guarda el equipoA si existe y si no existe guardaría null. Una vez consultado y almacenado todo en arrays tengo que comprobar si es null. Si en un ciclo (por ejemplo en la posicion 2 de los 6 arrays) el valor de los arrays es null entonces ese árbitro no me lo imprimiría.
Dejo aquí el código de lo qu tengo ahora mismo que me imrime todos los árbitros, tengan o no partido.
Código PHP:
Ver original
  1. while($row=$res->fetch_array()){
  2.             $a1[$i]=$row["a1"];
  3.             $a2[$i]=$row["a2"];
  4.             $a3[$i]=$row["a3"];
  5.             $a4[$i]=$row["a4"];
  6.             $a5[$i]=$row["a5"];
  7.             $a6[$i]=$row["a6"];
  8.             $i++;
  9. }
  10. if($a1!=null or $a2!=null or $a3!=null or $a4!=null or $a5!=null or $a6!=null){
  11.  /*Aquí imprimiria un PDF*/
  12. }
Para aclarar un poco, a1 sería si el árbitro va de principal, a2 de auxiliar, etc.
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #2 (permalink)  
Antiguo 26/04/2014, 10:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Trabajar con arrays

No nos has aclarado el error o duda que tienes. Por otro lado, te sugiero utilizar la función is_null para verificar si la variable está vacía o no, aunque ten cuidado, porque ahí intentas verificar si cada array es nulo. Creo que la comprobación debes hacerla en el mismo bucle y utilizando el respectivo subíndice para cada array.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 26/04/2014, 11:03
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: Trabajar con arrays

El problema es que si tengo un árbitro que no tiene designado un partido (todos los arrays en esa posición serán null) me imprime en un pdf ese árbitro, cuando yo lo que quiero es que me imprima solamente los arbitros que tienen algun partido designado (uno de los arrays debe tener en esa posición algún valor).
Metiendo el if dentro del bucle se soluciona esto pero si un árbitro tiene un partido me lo repite tantas veces como partidos tiene
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #4 (permalink)  
Antiguo 26/04/2014, 11:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Trabajar con arrays

¿Y si lo haces así?

Código PHP:
Ver original
  1. while ($row = $res->fetch_array()){
  2.     if (!is_null($row["a1"]) && !is_null($row["a2"]) && !is_null($row["a3"]) &&
  3.         !is_null($row["a4"]) && !is_null($row["a5"]) && !is_null($row["a6"])){
  4.         $a1[$i] = $row["a1"];
  5.         $a2[$i] = $row["a2"];
  6.         $a3[$i] = $row["a3"];
  7.         $a4[$i] = $row["a4"];
  8.         $a5[$i] = $row["a5"];
  9.         $a6[$i] = $row["a6"];
  10.  
  11.         //Imprimir PDF
  12.  
  13.         $i++;
  14.     }
  15. }
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 26/04/2014, 11:32
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: Trabajar con arrays

Gracias por tu respuesta @Alexis. Ahora ya no imrpime cuando están a null pero los que tienen algún partido se repite tantas veces como partido tiene.
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #6 (permalink)  
Antiguo 26/04/2014, 11:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Trabajar con arrays

En cada iteración, ¿Se asignan los datos de los árbitros de cada partido o cómo es el tema? En otras palabras, cada iteración representa a los datos de cada árbitro o de cada partido?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 26/04/2014, 11:40
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: Trabajar con arrays

Cita:
Iniciado por Alexis88 Ver Mensaje
En cada iteración, ¿Se asignan los datos de los árbitros de cada partido o cómo es el tema? En otras palabras, cada iteración representa a los datos de cada árbitro o de cada partido?
De cada árbitro, por lo que el código de árbitro puede estar en varios partidos a la vez. Ese debe ser el motivo por el que se repiten pero no se como arreglarlo.
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #8 (permalink)  
Antiguo 26/04/2014, 11:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Trabajar con arrays

A ver, si en cada iteración se manipulan los datos de cada árbitro, entonces, ¿Pueden haber varias iteraciones por cada árbitro? Si fuera así, creo que deberías tener un campo en la tabla de la BD en donde guardes un estado por cada partido, por ejemplo, el árbitro Juan Pérez tiene 5 partidos, pero de ellos, ya arbitró 2 y le quedan arbitrar otros 3, entonces, el estado de los dos partidos sería "completado" y el de los otros dos "pendiente". Con este dato, puedes realizar una condición que limite la impresión de PDFs.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 26/04/2014, 12:03
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: Trabajar con arrays

Cita:
Iniciado por Alexis88 Ver Mensaje
A ver, si en cada iteración se manipulan los datos de cada árbitro, entonces, ¿Pueden haber varias iteraciones por cada árbitro? Si fuera así, creo que deberías tener un campo en la tabla de la BD en donde guardes un estado por cada partido, por ejemplo, el árbitro Juan Pérez tiene 5 partidos, pero de ellos, ya arbitró 2 y le quedan arbitrar otros 3, entonces, el estado de los dos partidos sería "completado" y el de los otros dos "pendiente". Con este dato, puedes realizar una condición que limite la impresión de PDFs.
Ese no es el problema porque el listado de partidos sería de partidos que debe hacer en una semana y la semana siguiente los que deba hacer, etc. Para ello ya tengo un campo jornada en la tabla de partidos y voy filtrando por ahí. He estado mirando en el manual de PHP por si hay alguna función que elimine los resultados repetidos de un array para así poder contar el número de veces que debe hacerse la impresión pero no he encontrado nada. ¿Quizá con alguna función de ordenación tipo método de la burbuja se pueda hacer algo no?
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #10 (permalink)  
Antiguo 26/04/2014, 12:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Trabajar con arrays

Creo que te faltó revisar más el manual: array_unique.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 26/04/2014, 12:14
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años, 8 meses
Puntos: 9
Respuesta: Trabajar con arrays

Te dejo aquí en enlace al PDF para que veas el problema.
PDF
He provado a implementarlo tal como te dije y solamente me imprime el último de toda la lista de árbitros, así que debo dejar la impresión dentro del bucle
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe

Etiquetas: arrays
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 21:29.