Foros del Web » Programando para Internet » PHP »

Error en foreach

Estas en el tema de Error en foreach en el foro de PHP en Foros del Web. Hola chicos, me ha tocado la "fabulosa" tarea de corregir un error en una web queno es mía, y no sé de que forma localizarlo, ...
  #1 (permalink)  
Antiguo 15/02/2007, 12:48
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Error en foreach

Hola chicos, me ha tocado la "fabulosa" tarea de corregir un error en una web queno es mía, y no sé de que forma localizarlo, les indico, tras realizar una búsqueda en un formulario llama a esta función:

Código PHP:
    function buildWhere($tableFields$tbOpFields$fieldsLOps) {
        
$where "";
        
$logicOperator "AND";
        if (isset(
$_REQUEST['lop']) && is_string($_REQUEST['lop'])) {
            
$logicOperator strtoupper($_REQUEST['lop']);
        }
        foreach(
$tableFields as $key => $value) {
            
codigo que no importa
        
}

        
    } 
El error me lo da en el foreach, indicando lo siguiente:

Warning: Invalid argument supplied for foreach() in rutadelaweb.php

Y no se a que argumento se refiere o es que no está encontrando alguna de las variables de la caden a foreach.

El caso es que al no ser una web mía no se que comprobación hacer.

Ruego me digáis que debo cambiar o probar para descubrir a que se debe dicho error.

Gracias!
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 15/02/2007, 12:54
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 4 meses
Puntos: 281
Re: Error en foreach

no pones la variable que suples al foreach. esta debe se un array o no funcionara.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #3 (permalink)  
Antiguo 15/02/2007, 13:13
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Error en foreach

Disculpa no te entiendo, te refieres a que no estoy instanciando la variable $tableFields dentro de la funcion? (supongo que no debe ser esto ya que hablamos de una funcion y dicha variable vendría de fuera).

Por favor explicamelo un poco mejor ya que necesito tenerlo para mañana.

Asi todo gracias por tu rapidez.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #4 (permalink)  
Antiguo 15/02/2007, 14:00
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 21 años, 11 meses
Puntos: 4
Re: Error en foreach

Coincido con juaniquillo.... verifica si la variable $tableFields es un arreglo.... como?? dandole un "echo" a la variable..

Saludos,
jars.
  #5 (permalink)  
Antiguo 15/02/2007, 14:03
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 4 meses
Puntos: 281
Re: Error en foreach

que la variable $tableFields tiene que ser un array (o una matriz en español) para que funcione el foreach.

como dice locojars, dale un eco y si el resultado es 'Array', entonces es otra cosa.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #6 (permalink)  
Antiguo 15/02/2007, 15:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Error en foreach

Incluso puedes hacerle un var_dump() y ver su contenido si es un array ;)
  #7 (permalink)  
Antiguo 15/02/2007, 16:10
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: Error en foreach

o un print_r($tableFields); si e sun array mostrara los indices con sus contenidos
  #8 (permalink)  
Antiguo 15/02/2007, 16:28
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: Error en foreach

Creo que es más fácil: is_array($var);

Devuelve true si el parámetro dado es del tipo Array, sino devuelve false.

Más información: http://es2.php.net/manual/es/function.is-array.php

Saludos,
__________________
sergiold
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 05:40.