Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Problema con buscador php sencillo

Hola a todos!! Bien, hoy me molesta la duda de como definir una variable y un index.
Este es el error que sale:
Notice: Undefined index:
Notice: Undefined variable:
Primero explico que estoy haciendo un buscador y me tira un error index en esta linea, ya que no defini "busca":
<?php
$busca="";
$busca=$_POST['busca']; //ACA ES DONDE ME TIRA ERROR

mysql_connect("localhost","root", "pitodesaul");// si haces conexion desde internnet usa 3 parametros si es a nivel local solo 2
mysql_select_db("sitio_corporativo");//nombre de la base de datos
if($busca!=""){
$busqueda=mysql_query("SELECT * FROM z_posts WHERE titulo LIKE '%".$busca."%'");//cambiar nombre de la tabla de busqueda
while($f=mysql_fetch_array($busqueda)){
echo $f['titulo'].'&nbsp;|&nbsp;'.$f['fecha'].'&nbsp;&nbsp;&nbsp;&nbsp;'."<br>";//cambiar los nombres de los campos de busqueda
}


}
?>
Y luego el error de variable me lo tira aca, la variable indefinida es DatosWeb:
<?php echo $row_DatosWeb['titulo']; ?>

Desde y muchas gracias por el tiempo!! Saludos!!
0
Puntos
1836
Visitas
10
Resp
Por GeorgeHarrison hace 122 meses
Principiante
Respuesta #1
buenas, el propio error de variable no definida nos dice que no existe y es por que en la consulta no la estas creando, de todas formas yo te voy a dejar un ejemplo de como yo lo haría, ojo de la forma que tu lo haces también es respetable cada uno a su gusto por supuesto

ejemplo de buscador sencillo
<?php 

    $hostname_conexion = "servidor";
	$database_conexion = "DB";
	$username_conexion = "User";
	$password_conexion = "Password";
	$conexion = mysql_pconnect($hostname_conexion, $username_conexion, $password_conexion) or trigger_error(mysql_error(),E_USER_ERROR); 
	
	
	$cadena=$_GET['busca']; // Yo utilizo GET
	
	mysql_select_db($database_conexion, $conexion);
	$query_DatosWeb = sprintf("SELECT * FROM a_posts WHERE titulo LIKE %s ORDER BY id DESC", GetSQLValueString("%" . $cadena . "%", "text"));
	$DatosWeb = mysql_query($query_DatosWeb, $conexion) or die(mysql_error());
	$row_DatosWeb = mysql_fetch_assoc($DatosWeb);
	$totalRows_DatosWeb = mysql_num_rows($DatosWeb);
	
	
	if ($totalRows_DatosWeb!=''){ //Mostramos si hay algún resultado
	
	do {
		
		echo $row_DatosWeb['titulo'];
		
	} while ($row_DatosWeb = mysql_fetch_assoc($DatosWeb));
	
	} else echo 'No hay resultados'; //Si no hay resultados
	
	mysql_free_result($DatosWeb);

	
?>
puedes usar solo parte del código y conectarte a la base de datos a tu manera sin problemas ;)
5
Puntos
Por alber hace 122 meses
Administrador
Respuesta #2
Como siempre estoy super agradecido alber, pero me sigue tirando el error de que no defini busca, y ademas no importa lo que busque me salen todos los post.
Disculpas y muchisimas gracias!!
0
Puntos
Por GeorgeHarrison hace 122 meses
Principiante
Respuesta #3
en esta linea
if ($totalRows_DatosWeb){ //Mostramos si hay algún resultado
olvide poner si es distinto a nada
if ($totalRows_DatosWeb!=''){ //Mostramos si hay algún resultado
5
Puntos
Por alber hace 122 meses
Administrador
Respuesta #4
si te sigue tirando un error puede ser por tu servidor local, cual usas?? xampp o wampp??
5
Puntos
Por alber hace 122 meses
Administrador
Respuesta #5
Uso Xampp, pero no entendi bien lo que me dijiste, yo copio tu codigo, pongo mis datos, pero como te dije me tira el error y ademas me muestra todos mis post en vez de mostrar los post que coincidan con la busqueda, que es lo que tendria que cambiar? Disculpa que te llene de preguntas alber, sos un genio, muchisimas gracias por todo!!
0
Puntos
Por GeorgeHarrison hace 122 meses
Principiante
Respuesta #6
el problema es que no entiendo tu código si quieres pon por aquí la pagina completa y intento ayudarte ya sabes que intento hacerlo lo mejor que puedo pero cada proyecto es un mundo
0
Puntos
Por alber hace 122 meses
Administrador
Respuesta #7
Por supuesto alber, pero no importa, ya mas o menos lo pude solucionar. Muchisimas gracias, vos te interesas por cada tema, la verdad que sos un genio! Saludos!
0
Puntos
Por GeorgeHarrison hace 122 meses
Principiante
Respuesta #8
Notice: Undefined index:
Notice: Undefined variable:
Esos mensajes no son errores como tal, son notas por decir, es porque no estan definidas, pero NO ES ERROR, en sistemas operativos en producción esos mensajes no aparecerán, por ejemplo en un GNU/Linux como servidor web digamos un CentOS, tu progrmación asi como está no muestra esos mensajes, de igual forma en un BSD, en software como xampp wamp si muestra porque son software para desarrollo y por defecto en php.ini esta mostrar todo, pero usted puede configurar para que no aparezcan notices o warning y mas detalles, yo recomiendo dejar asi como esta, solo las notas las ocultaria porque son notas, si no tiene acceso a php.ini (como muchos servidores en internet) puede usar en su archivo.php en las primeras lineas error_reporting(E_ALL & ~E_NOTICE); y recargue la pagina y verá que ya no aparece los notices, saludos.
0
Puntos
Por rodolfobsd hace 122 meses
Principiante
Respuesta #9
estuve viendo sus códigos...
si el buscador funciona no hay problema, esos notices lo pueden ocultar con error_reporting, pero si el buscador no funciona ahi si ahy que revisar a detalle su codigo.

otra cosa que veo es que en el condicional esta bien, pero otra forma podria ser
$busca=$_POST['busca']; //esto esta bien, porque usando el metodo post estas enviando y $busca ya lo captura, eso esta bien
if(!empty($busca)){
    echo 'tu consultasql';
}else{
    echo "ingrese texto por favor...";
}

asi podría ser, pero tu codigo que yo vea esta bien, el del amigo que te corrigió antes esta mucho mas ordenado, pero igual estan bien los dos, suerte.
5
Puntos
Por rodolfobsd hace 122 meses
Principiante
Respuesta #10
a bueno si lo que querías era ocultar los errores solamente tenias que haber usado el buscador xd https://datoweb.com/post/23-como-ocultar-o-desactivar-errores-notice-undefined-de-php/
5
Puntos
Por alber hace 122 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate