Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error con foreach()

Estas en el tema de Error con foreach() en el foro de PHP en Foros del Web. Hola, me sale el siguiente mensaje: Warning: Invalid argument supplied for foreach() in C:\wamp\www\views\tables\tabla.salud.colectivos.ph p on line 198 Este es el codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 31/08/2015, 23:32
 
Fecha de Ingreso: julio-2015
Mensajes: 16
Antigüedad: 8 años, 9 meses
Puntos: 0
Exclamación Error con foreach()

Hola, me sale el siguiente mensaje:

Warning: Invalid argument supplied for foreach() in C:\wamp\www\views\tables\tabla.salud.colectivos.ph p on line 198

Este es el codigo:
Código PHP:
Ver original
  1. consulta_Tabla_Registro_Detalle_Soporte_Comercial($_SESSION["USER_MATRICULA"],$COD_ESTADO);
  2.     if (!$TOT_REGISTRO_SCOL_DETALLE){
  3. ?>
  4.  
  5. <!-- Tabla Listado de Casos Pendientes -->
  6. <div class="container-fluid">
  7. <h3 class="sub-header text-success"><em>Listado de Casos Pendientes</em></h3>
  8. <div class="table-responsive">
  9.     <table class="table table-hover">
  10.         <thead>
  11.         <tr>
  12.             <th>ID</th>
  13.             <th>RAMO</th>
  14.             <th>N&deg DE CASO</th>
  15.             <th>CLIENTE</th>
  16.             <th>BROKER</th>
  17.             <th>ASIGNADO</th>
  18.             <th>FECHA DE ENVIO</th>
  19.             <th>OBSERVACION</th>
  20.         </tr>
  21.         </thead>
  22.         <?php
  23.             foreach ($TOT_REGISTRO_SCOL_DETALLE as $rgSdet) { //Aqui es la Linea 198
  24.         ?>
  25.         <tbody>
  26.         <tr>

La función consulta_Tabla_Registro_Detalle_Soporte_Comercial( ) es:

Código PHP:
Ver original
  1. function consulta_Tabla_Registro_Detalle_Soporte_Comercial($USER_MATRICULA,$COD_ESTADO) {
  2.  
  3.     $conexion = db_connect();
  4.     $sql = 'SELECT *
  5.              FROM tb_registro_scol_detalle
  6.             WHERE USER_MATRICULA = :USER_MATRICULA
  7.               AND COD_ESTADO = :COD_ESTADO
  8.          ORDER BY FEC_SOLICITUD ASC';
  9.     $Q_TB_REGISTRO_SCOL_DETALLE = $conexion->prepare($sql);
  10.     $Q_TB_REGISTRO_SCOL_DETALLE->execute(array(':USER_MATRICULA' => $USER_MATRICULA, ':COD_ESTADO' => $COD_ESTADO));
  11.     $TOT_REGISTRO_SCOL_DETALLE = $Q_TB_REGISTRO_SCOL_DETALLE->fetchAll();
  12.     //print_r($TOT_REGISTRO_SCOL_DETALLE); //Aqui se imprimen en pantalla los Arrays para verificar que la consulta si funcione.
  13.     //$Q_TB_REGISTRO_SCOL_DETALLE->closeCursor();
  14. }
  #2 (permalink)  
Antiguo 31/08/2015, 23:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error con foreach()

¿De verdad no te das cuenta de la mala lógica de tu script?

O sea, acá primero verificas que no exista dicha variable:
Código PHP:
Ver original
  1. if (!$TOT_REGISTRO_SCOL_DETALLE)

Y dentro la usas.

¿Cómo esperas usar algo que ya verificaste y no existe?

Ahora, me imagino que para eso es tu función, y se nota claramente que dentro declaras la variable:
Código PHP:
Ver original
  1. $TOT_REGISTRO_SCOL_DETALLE = $Q_TB_REGISTRO_SCOL_DETALLE->fetchAll();

¿Pero sí sabes que las variables dentro de una función no se exponen de manera externa si no haces return adecuadamente?

El error es bastante obvio, si no sabes cómo se usan tus propias funciones ¿cómo podríamos saber nosotros?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/09/2015, 08:55
 
Fecha de Ingreso: julio-2015
Mensajes: 16
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Error con foreach()

Gracias por el Jalón de Orejas, soy novato en esto, a lo mucho lo máximo que e programado es el control remoto de mi televisor.

Ahora ya funciona, luego de leer sobre variables en PHP.

Código PHP:
Ver original
  1. $COD_ESTADO = "3A";
  2.     $Q_TB_REGISTRO_SCOL_DETALLE = consulta_Tabla_Registro_Detalle_Soporte_Comercial($_SESSION["USER_MATRICULA"],$COD_ESTADO);
  3.     $TOT_REGISTRO_SCOL_DETALLE = $Q_TB_REGISTRO_SCOL_DETALLE->fetchAll();
  4.     if (isset($TOT_REGISTRO_SCOL_DETALLE)){
  5. .....
  6. }

Aquí la funcion
Código PHP:
Ver original
  1. function consulta_Tabla_Registro_Detalle_Soporte_Comercial($USER_MATRICULA,$COD_ESTADO) {
  2.  
  3.     $conexion = db_connect();
  4.     $sql = 'SELECT *
  5.              FROM tb_registro_scol_detalle
  6.             WHERE USER_MATRICULA = :USER_MATRICULA
  7.               AND COD_ESTADO = :COD_ESTADO
  8.          ORDER BY FEC_SOLICITUD ASC';
  9.     $Q_TB_REGISTRO_SCOL_DETALLE = $conexion->prepare($sql);
  10.     $Q_TB_REGISTRO_SCOL_DETALLE->execute(array(':USER_MATRICULA' => $USER_MATRICULA, ':COD_ESTADO' => $COD_ESTADO));
  11.     return $Q_TB_REGISTRO_SCOL_DETALLE;
  12.     $Q_TB_REGISTRO_SCOL_DETALLE->closeCursor();
  13. }

Etiquetas: fecha, registro, select, sql, 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 13:24.