Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/08/2011, 15:41
oscarbt
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
probmea al ejecutar foreach dentro de un while

Buenas a todos, tengo un problema a la hora de ejecutar un foreach en un while, el while me recorre los resultados de una consulta y el foreach me lee un xml...
El problema esta si dentro del foreach ejecuto una sentencia SQL,

El codigo aca:
//la consulta q me crea el whiel
Código PHP:
Ver original
  1. <?php
  2. $sqlexa=" SELECT * FROM GESOLHC WHERE ORDSER='1'";
  3.  $obj->consulta($sqlexa);
  4.  $nfilas=$obj->numFilas();
  5. while ($row = sqlsrv_fetch_array($obj->result))
  6. {
  7. $codigo=$row[0];
  8. //aca empiezo a condicionar:
  9. if(($codigo=='EXA') && ($consolexa>0))
  10. {
  11. echo "Entra primero";
  12. //ejecuto el foreach y muestra resultados bien
  13. }
  14. if(($codigo=='PQX') && ($conpqx>0))
  15. {
  16. echo "Entra segundo";
  17. //ejecuto el foreach de este caso y muestra bien los resultados
  18. }
  19. }
  20. ?>

El problema esta si por ejemplo en el primer if hago una consulta:
Código PHP:
Ver original
  1. if(($codigo=='EXA') && ($consolexa>0))
  2. {
  3. echo "Entra primero";
  4. $x = new SimpleXMLElement($archivo, null, true);    
  5.  $b=0;
  6.  foreach($x->solqx as $soli ) {
  7.  $codqx=$soli['cod'];
  8.  $cantqx=$soli['can'];
  9.  $proqx=$soli->examen;
  10.  $proqx = substr( $proqx, 0, 76 );
  11.  $proqx=$proqx."...";
  12.  $observqx=$soli->observ;
  13. //ejecuto el foreach
  14. $sqlvalser2="SELECT SMTVALSER FROM GEMANTAR WHERE GENCODIGO='".$mantarifa."'  AND SIPCODIGO='".$codqx."'";
  15. $obj->consulta($sqlvalser2);
  16. $row2 = sqlsrv_fetch_array($obj->result);
  17. $valorser2=$row2[0];
  18.  
  19. }
  20. }

Para este caso, ya no entra al segundo if, porque?....
Espero me puedan dar una ayuda, gracias