PHP - RECORRER ARREGLO

 
Vista:
sin imagen de perfil
Val: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

RECORRER ARREGLO

Publicado por sara (67 intervenciones) el 18/04/2020 03:56:57
tengo el siguiente codigo el cual quiero que me imprima el valor de sumisr dependiendo del valor comparado en este caso tipoisr y por mes, lo del mes ya me lo recorre con el ciclo for pero lo del tipoisr no porque solo me agarra el primer valor de la consulta. entonces como puedo recorrer el arreglo del tipoisr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for ($j=01; $j <= 12; $j++) {
 
$sqlTIPO="SELECT month(FECHAFLUJO), tipoisr, SUM( retencionisr ) as sumisr
FROM flujo
WHERE year(FECHAFLUJO) = '2020' AND month(FECHAFLUJO) = '".$j."'
AND tipoisr IS NOT NULL
AND retencionisr IS NOT NULL
GROUP BY tipoisr";
 
$queryTIPO=mysqli_query($con,$sqlTIPO);
$rowwwTIPO=mysqli_fetch_array($queryTIPO);
 
if($rowwwTIPO[0] == 04) {
    if(array_key_exists('ISRHONORARIOS', $sqlTIPO)){
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue("E12", $rowwwTIPO[0]);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RECORRER ARREGLO

Publicado por joel (1269 intervenciones) el 18/04/2020 08:47:31
Puedes hacerlo de varias maneras, pero la mas utilizadas es utilizando un bucle... algo así

1
2
3
4
while($row = mysqli_fetch_array($queryTIPO))
{
    echo $rowwwTIPO[0];
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

RECORRER ARREGLO

Publicado por sara (67 intervenciones) el 18/04/2020 16:06:19
listo tenias razon ya logre hacerlo, Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RECORRER ARREGLO

Publicado por Julio (830 intervenciones) el 18/04/2020 10:33:42
Hola.

1
for ($j=01; $j <= 12; $j++) {

Aquí $j no te va a coger los valores 01, 02, 03, 04..., sino que te va a coger 1, 2, 3, 4, 5, 6..., lo que quizá cuando lo usas en la base de datos no es lo que esperas, porque esperas 01, 02, 03... Estás usando enteros y deberías usar strings para esos '01', '02', '03', etc.

1
if($rowwwTIPO[0] == 04) {

Y aquí estamos con lo mismo, 04 se va a guardar internamente como un entero, es decir, un 4. Sin embargo en $rowwwTIPO[0] imagino que vendrá un '04', por lo que es probable que tampoco te funcione bien. Deberías compararlo con '04'.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

RECORRER ARREGLO

Publicado por sara (67 intervenciones) el 18/04/2020 15:49:05
de hecho esa condición de mes si me funciona(porque lo corrí solo y si me funciona), lo que no me funciona es cuando quiero recorrer lo del tipoisr haz de cuenta que no me imprime nada referente al tipoisr porque nada mas lo compara con el primer resultado de mi consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RECORRER ARREGLO

Publicado por Julio (830 intervenciones) el 18/04/2020 16:55:53
Es normal eso, no estás recorriendo los resultados. Mira:

1
if($rowwwTIPO[0]

Aquí sólo comparas el primer valor de $rowwwwTIPO. Además, es que haces cosas muy raras ahí. A ver, te explico:

1
$rowwwTIPO=mysqli_fetch_array($queryTIPO);

Supuestamente aquí obtendrás un array con todas las filas que se han obtenido de la consulta a la base de datos y que tendrán su month, tipoisr y sumisr. En $rowwwTIPO[0] tendrás la primera fila de la consulta, es decir, tendrá esos tres elementos, pero lo estás comparando con un 04 y, además, la fila entera, no un valor concreto.

Deberías hacer el while que te ha indicado Joel para recorrer todas las filas y hacer el if dentro.

Luego tienes:

1
if(array_key_exists('ISRHONORARIOS', $sqlTIPO)){

Fíjate que esto no tiene ningún sentido. La variable $sqlTIPO es una cadena donde has escrito la consulta, no es un array, por tanto, no tiene sentido que busques el índice ISRHONORARIOS ahí, dentro de una cadena.

Después, ¿qué es ISRHONORARIOS? No se ve que te vaya a venir ningún campo así de la base de datos, así que tampoco es que lo fuera a encontrar nunca.

Más cosas, tienes:

1
$objPHPExcel->setActiveSheetIndex(0)->setCellValue("E12", $rowwwTIPO[0]);

De nuevo lo que te comentaba arriba, $rowwwTIPO[0] será un array con varios elementos que equivalen a la primera fila de la consulta. No te va a dejar escribirlo bien en el Excel así.

Por eso deberías revisar bien toda esa parte y ver bien qué es lo que te devuelve la consulta, porque parece que estás mezclando valores y elementos que no tienen nada que ver y creo que no te funcionará.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar