Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Notice: Undefined variable

Estas en el tema de Notice: Undefined variable en el foro de PHP en Foros del Web. Hola a todos, estoy terminando de crear un foro de prueba basico, el problema es que al hacer forech me da error, me dice que ...
  #1 (permalink)  
Antiguo 17/08/2013, 17:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 3 meses
Puntos: 1
Notice: Undefined variable

Hola a todos, estoy terminando de crear un foro de prueba basico, el problema es que al hacer forech me da error, me dice que la variable context no esta definida. Le agradesco la ayuda. Utilizo este mismo metodo para mostrar los comentarios y funciona de maravillas, pero aca no entiendo por que no funciona .


Error:

Código PHP:
NoticeUndefined variablecontext in C:xampphtdocsaplantillaforo.plantilla.php on line 223

Warning
Invalid argument supplied for foreach() in C:xampphtdocsaplantillaforo.plantilla.php on line 223 
Codigo:

Código PHP:
function post_topic()
{

 
$get_topic=$_GET['id'];

 echo 
conexion();

 
$request=mysql_query("SELECT
        SQL_CALC_FOUND_ROWS
        e.id, e.titulo, e.contenido, e.categoria,
        e.id_user, e.user_name, e.fecha, u.usuario,
        u.id, u.avatar, u.rango
        FROM entradas as e, usuarios as u
        WHERE e.id = '"
.$get_topic."' AND e.id_user = u.id
        LIMIT 1"
)or die(mysql_error());


 while (
$row mysql_fetch_assoc($request)){



    
$context['post_topic'][] = array(
            
'id' => $row['id'],
            
'titulo' => $row['titulo'],
            
'contenido' => $row['contenido'],
            
'categoria' => $row['categoria'],
            
'id_user' => $row['id_user'],
            
'user_name' => $row['user_name'],
            
'fecha' => $row['fecha'],
            
'avatar' => $row['avatar'],
            
'rango' => $row['rango'],
            
'usuario' => $row['usuario'],
        );
        }
    
mysql_free_result($request);



    foreach (
$context['post_topic'] as $post_topic){


        echo 
'<div id="foro-p" class="rounded">
        <div class="profile">
        <div class="img"><img width="80" src="'
.$post_topic['avatar'].'" /></div>
        <div class="conectado" title="Online"></div>
        <div class="nick">'
.$post_topic['usuario'].'</div>
        <div class="rango">('
.$post_topic['rango'].')</div>
        </div>
        <div class="user-content">
        <div class="globit rounded">#1 Publicado hace 30 dias</div>
        <div id="cm1">'
.showBBcodes($post_topic['comentario']).'</div>
        </div>
        <div class="clearfix"></div>

        <div class="option"><a onClick="doAddTags2(\''
.$post_topic['usuario'].'\',\'cm1\',\'comentario\')">Responder</a></div>
        </div>'
;

    }



  #2 (permalink)  
Antiguo 17/08/2013, 17:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Notice: Undefined variable

Cambia esto:
Código PHP:
Ver original
  1. foreach ($context['post_topic'] as $post_topic)
por esto:
Código PHP:
Ver original
  1. foreach ($context as $post_topic)
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 17/08/2013, 18:03
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Notice: Undefined variable

Hola gracias por contestar, realice el cambio y no funciona.
Cita:
Iniciado por hhs Ver Mensaje
Cambia esto:
Código PHP:
Ver original
  1. foreach ($context['post_topic'] as $post_topic)
por esto:
Código PHP:
Ver original
  1. foreach ($context as $post_topic)
  #4 (permalink)  
Antiguo 17/08/2013, 18:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Notice: Undefined variable

Esta bien como lo tenias en el foreach, el problema esta en otra parte puedes decirnos en el fragmento de código que estas colocando cuales son las lineas que marcan el error.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Última edición por hhs; 17/08/2013 a las 18:41
  #5 (permalink)  
Antiguo 17/08/2013, 18:42
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Notice: Undefined variable

Ahora me dice que las variables "$post_topic['rango']" y demas no estan definidas. Pero si estan definidas en el array de arriba

Cita:
Iniciado por hhs Ver Mensaje
Esta bien como lo tenias en el foreach, el problema esta en otra parte puedes decirnos en el fragmento de código que estas colocando cuales son las lineas que marcan el error.
  #6 (permalink)  
Antiguo 17/08/2013, 18:42
 
Fecha de Ingreso: agosto-2013
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 3
Respuesta: Notice: Undefined variable

La variable $context existe por primera vez dentro del ciclo while, supongo que tu consulta SQL no arroja resultados y por eso no existe la variable
  #7 (permalink)  
Antiguo 17/08/2013, 19:07
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Notice: Undefined variable

Cita:
Iniciado por Javieer Ver Mensaje
La variable $context existe por primera vez dentro del ciclo while, supongo que tu consulta SQL no arroja resultados y por eso no existe la variable
Hice una prueba pero ya te contesto Javieer y el problema es ese, así que necesitas o definir la variable antes del while o que compruebes que context es un arreglo y esta definida antes de pasarlo al foreach
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 17/08/2013, 19:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Notice: Undefined variable

Hola gracias por ayudar, claro el error ahora lo arroja cuando pongo un id que no existe en la base de datos, pero cuando pongo un id valido no muestra nada, ni siquiera imprime los divs vacios. Seguire revisando...

Cita:
Iniciado por Javieer Ver Mensaje
La variable $context existe por primera vez dentro del ciclo while, supongo que tu consulta SQL no arroja resultados y por eso no existe la variable
  #9 (permalink)  
Antiguo 17/08/2013, 19:20
 
Fecha de Ingreso: agosto-2013
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 3
Respuesta: Notice: Undefined variable

primero en el while pon un print_r($rows); para ver si la consulta regresa datos, en caso de que si regrese datos pon otro print_r($context['post_topic']); en el foreach y me avisas que pasa
  #10 (permalink)  
Antiguo 18/08/2013, 15:53
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Notice: Undefined variable

Muchas gracias Javieer y Hhs por la ayuda, ya lo solucione quite el while y defini las variables asi:

Código PHP:
$context['post_topic'][] = array();
 
$posts mysql_fetch_array($request);
 
$avatar_p $posts['avatar'];
 
$titulo $posts['titulo'];
 
$rango_p $posts['rango'];
 
$usuario_p $posts['usuario'];
 
$contenido_p $posts['contenido'];
 
$fecha_p $posts['fecha']; 
Y funciona de maravillas, pero es correcto ponerlo asi?
Cita:
Iniciado por hhs Ver Mensaje
Hice una prueba pero ya te contesto Javieer y el problema es ese, así que necesitas o definir la variable antes del while o que compruebes que context es un arreglo y esta definida antes de pasarlo al foreach

Etiquetas: mysql, notice, select, sql, undefined, usuarios, variable
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:45.