Foros del Web » Programando para Internet » PHP »

error undefined variable

Estas en el tema de error undefined variable en el foro de PHP en Foros del Web. Buenas, estoy intentando hacer una zona de noticias con buscador, Código: <div id="caja_contenido"> <div class="container2"> <table width="100%" border="0" cellspacing="2" cellpadding="2"> <tr> <td width="33%"></td> <td width="39%"><div ...
  #1 (permalink)  
Antiguo 11/02/2012, 22:36
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación error undefined variable

Buenas, estoy intentando hacer una zona de noticias con buscador,

Código:
<div id="caja_contenido">
<div class="container2"> 
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="33%"></td>
<td width="39%"><div align="right" style="margin-right:5px;">Introduzca un texto para buscar</div></td>
<td width="28%"><form action="home.php?metas=seccion4&idioma=espanol" method="post" name="form" id="form">
<label>
<input  type="text" name="p" id="p" />
</label>
<label>
<input type="submit" name="submit" value="Buscar" />
</label>
</form>
</td>
</tr>
</table>

   		    	
<?php
if(isset($_POST['p']))
$p=$_POST['p'];
$consulta=mysql_query("SELECT * FROM prensa WHERE Titulo LIKE '%$p%'") or die(mysql_error());
while($mostrar=mysql_fetch_array($consulta)){
$id=$mostrar['Id'];
$titulo=$mostrar['Titulo'];
$desc=$mostrar['Desc'];
$enlace=$mostrar['Enlace'];
$imagen=$mostrar['Imagen'];
$fecha=$mostrar['Fecha'];

?>

<div class="galleryItem">
<h3><?php echo $titulo ?></h3>
<a href="<?php echo $enlace ?>">
<img src="<?php echo $imagen ?>" /></a>
<div class="fecha">Fecha de emisi&oacute;n: <span class="date"><?php echo $fecha ?></span>
</div>
	    		
	    		<p><?php echo $desc ?></p>
   	</div>
            <?php
}

?>
  </div>	
    </div>
Sucede que al entrar por primera vez al sitio, sale el siguiente error

Código HTML:
Undefined variable: p in D:\xampp\htdocs\marcuyas\secciones\seccion4.php on line 23

Cuando hago uso del buscador, todo funciona ok, devuelve los resultados que pido.

Será una chorrada de novato, pero basicamente me dice que $p no esta definido, pero yo si lo hice, que puede estar mal?

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 12/02/2012, 00:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: error undefined variable

la condición se detiene en esta linea: $p=$_POST['p'];
entonces la linea 23 queda afuera

para que todo quede dentro del if
seria así:

Código PHP:
<?php
if(isset($_POST['p'])){
$p=$_POST['p'];
$consulta=mysql_query("SELECT * FROM prensa WHERE Titulo LIKE '%$p%'") or die(mysql_error());
while(
$mostrar=mysql_fetch_array($consulta)){
$id=$mostrar['Id'];
$titulo=$mostrar['Titulo'];
$desc=$mostrar['Desc'];
$enlace=$mostrar['Enlace'];
$imagen=$mostrar['Imagen'];
$fecha=$mostrar['Fecha'];
}
?>
edito pon la llave de cierre donde termina la del while
__________________
╬-----╬
║☺₧☻║
╬-----╬

Última edición por thezzin; 12/02/2012 a las 00:25
  #3 (permalink)  
Antiguo 12/02/2012, 08:18
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación Respuesta: error undefined variable

Gracias por tan rápida respuesta, ahora ya no sale el error, pero no se ven resultados al entrar, sólo si hago una búsqueda, que puedo estar poniendo mal?

básicamente le digo que me de resultados en función de $p pero al entrar en la página $p está vacia, como puedo evitar eso?

Gracias por tu ayuda.
  #4 (permalink)  
Antiguo 12/02/2012, 08:22
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: error undefined variable

Cita:
Gracias por tan rápida respuesta, ahora ya no sale el error, pero no se ven resultados al entrar, sólo si hago una búsqueda, que puedo estar poniendo mal?
Obvio, esa es la logica del código que tienes...

Cita:
básicamente le digo que me de resultados en función de $p pero al entrar en la página $p está vacia, como puedo evitar eso?
o.O dandole un valor por defecto?....

Código PHP:
Ver original
  1. $miVariable = isset($_GET['mivariable']) ? $_GET['mivariable'] : "valor por defecto";
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 12/02/2012, 08:50
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: error undefined variable

exacto así como te dice Nemutagk

También aquí te dejo otras sugerencias...
me imagino que lo que quieres es que haga una pre consulta antes de hacer la búsqueda
Lo que puedes hacer es mandar la búsqueda desde otra pagina.

o que cambies la linea 21 y 22 por un código como este

Código PHP:
function GetPost($GetV){
return isset(
$_POST[$GetV]) ? $_POST[$GetV] : "Un Valor aquí para hacer una pre-Búsqueda a la DB";
//return isset($_POST[$GetV]) ? $_POST[$GetV] : $algo;//Usar una Variable
//return isset($_POST[$GetV]) ? $_POST[$GetV] : ""; //no hacer pre-consulta
}
$p GetPost('p'); 
o también puedes poner un if en el php que hace la consulta a DB
__________________
╬-----╬
║☺₧☻║
╬-----╬
  #6 (permalink)  
Antiguo 12/02/2012, 09:04
 
Fecha de Ingreso: febrero-2012
Mensajes: 13
Antigüedad: 12 años, 9 meses
Puntos: 0
Sonrisa Respuesta: error undefined variable

Cita:
Iniciado por thezzin Ver Mensaje
exacto así como te dice Nemutagk

También aquí te dejo otras sugerencias...
me imagino que lo que quieres es que haga una pre consulta antes de hacer la búsqueda
Lo que puedes hacer es mandar la búsqueda desde otra pagina.

o que cambies la linea 21 y 22 por un código como este

Código PHP:
function GetPost($GetV){
return isset(
$_POST[$GetV]) ? $_POST[$GetV] : "Un Valor aquí para hacer una pre-Búsqueda a la DB";
//return isset($_POST[$GetV]) ? $_POST[$GetV] : $algo;//Usar una Variable
//return isset($_POST[$GetV]) ? $_POST[$GetV] : ""; //no hacer pre-consulta
}
$p GetPost('p'); 
o también puedes poner un if en el php que hace la consulta a DB
Perfecto, con esto se resuelve la ecuación :)

Gracias por la ayuda!!!

Etiquetas: sql, undefined, variables
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 14:43.