Foros del Web » Programando para Internet » PHP »

Comparar for con foreach

Estas en el tema de Comparar for con foreach en el foro de PHP en Foros del Web. Buenos Dias, Necesito un favor no se como ya lo intente pero se me repiten 3 vesces el proceso, se que debe ser un error ...
  #1 (permalink)  
Antiguo 08/10/2014, 10:13
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Comparar for con foreach

Buenos Dias,

Necesito un favor no se como ya lo intente pero se me repiten 3 vesces el proceso, se que debe ser un error bobo pero no le podido encontrar

Tengo una tabla que me contiene servicios, y otra tabla que guarda un contrato con los servicios asociados, necesito comparar si la tabla que guarda los servicios asociados a un contrato guarda todos los principales.

Realizo una consulta para mostar los servicios principales, esto me devuelve un arreglo, y realizo otra consulta que busca segun el contrato todos los servicios principales asociados, puede que un contrato tengo los 3 principales o solo 1 o solo 2 esta consulta la recorro con un foreach y el arreglo con un for.

Si el servicio en la primera posición del arreglo es igual al primer servicio que regresa el foreach muestra detalle y si no muestra cara triste tengo que hacer este proceso para todos

agradezco toda a la ayuda prestada

Código PHP:
$cotizaciones = $idGrupoCotizacion->cotizaciones;// trae servicios asociados a un contrato
$consulta = Servicios::model()->findAll('Tipo = "1"'); //Consulta todos los servicios principales
                    for ($i = 0; $i < count($consulta); $i++) { //Recorre cada posición del arreglo
                        foreach ($cotizaciones as $cotizacion) {// Recorre lo que devuelve $cotizaciones

                            if ($consulta[$i]->ID == $detalleCotiza->Servicio) {// COmparo lo del for con lo el foreach
                                $cotizaciondetalle = $detalleCotiza->detalleCotizacion;
                                $this->renderPartial('detalleServ', array('servicio' => $detalleCotiza->Servicio, 'codigo' => $cotizacion->Codigo, 'cotizaciondetalle' => $cotizaciondetalle, 'detcotizacion' => $detalleCotiza, false, true));
                            } else {
                                ?>
                                <img src='../clienteweb/images/triste_grande.jpg' width='200' height='100'/>
                                <?php
                            
}
                        }
                    }
el problema es que se muestra varias veces, si encuentra un servicios lo muestra bien, pero si encuentra 3 muestra 2 else por cada servicio
  #2 (permalink)  
Antiguo 08/10/2014, 13:48
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Comparar for con foreach

HOla JeMaGa,

En el foreach, si encuentras en la primera comparación el servicio, no lo encontrarás en los otros 2 detalles, o me equivoco? Es decir que deberías cambiar de servicio (aumentar el índice en el for).

Saludos,
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.

Etiquetas: foreach, tabla
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 18:37.