Programación Web y Scripting > PHP
Problema Con Busquedas Php Y Mysql
moyo18:
bueno la cosa esta asi, en un hostlocal q tengo en mi pc con appserv, las busquedas me sirven perfecto, pero al pasar a un sevidor me tira q no he introducido los datos y si los pongo.
estos son los codigos del form y el php
--- Código: Text ---<html><head> <title> Busqueda de Miembros del Grupo</title></head><body> <h1> Resultados busqueda</h1> <?php // confirmacion de entrada de datos trim($buscar); if (!$opcion || !$buscar) { echo "No has introducido los datos necesarios para la busqueda."; exit; }$opcion = addslashes ($opcion);$buscar = addslashes ($buscar); // conexion base d datos cambiar los datos de la base de datos por los tuyos @ $db = mysql_pconnect ("localhost","miuser","mipass"); if (!$db) { echo "No ha conectado con la base datos"; exit; } // llamar a la base de datos usar cambiar por el nombre de su base de datos mysql_select_db ("nombredb"); // consulta $consulta = "select * from registro where ".$opcion." like '%".$buscar."%'";$resultado = mysql_query($consulta);$num_resultado=mysql_num_rows($resultado);echo "<p>Miembros encontrados: ".$num_resultado."</p>"; for ($i=0; $i<$num_resultado; $i++){ $row = mysql_fetch_array ($resultado); echo "<p><strong>".($i+1).".Nombre: "; echo stripslashes($row["nombre"]); echo "</strong><br>Apellido:"; echo stripslashes ($row["apellido"]); echo "</p>";} ?> </body></html>
aki esta el form
--- Código: Text ---<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Documento sin título</title></head> <body><h1>Busqueda de Miempbros</h1> <form action="buscar.php" method="post"> Elige tipo de busqueda<br> <select name="opcion"> <option value="nombre">Nombre <option value="apellido">Apellido </select> <br> Escribe el termino de busqueda: <BR> <input name="buscar" type=text> <br> <input type=submit value="buscar"></form> </body></html>
pngo los datos y al darle enviar me sale esto
No has introducido los datos necesarios para la busqueda
porq me sale eso ? si tengo el dato introducido para la busqueda, pero en mi localhost me sirve bien con el appserv pero en el servidor q estoy pagando no.
F_Tanori:
Hola
mira
--- Código: Text --- trim($buscar);if (!$opcion || !$buscar){ echo "No has introducido los datos necesarios para la busqueda."; exit;}
para que la funcion trim, sea efectiva recibe un parametro por valor no por referencia por lo tanto debes hacer esto
--- Código: Text ---$buscar=trim($buscar);
pues la variable buscar no sera modificada sino le regresas el resultado de la funcion
prueba cambiando tu comparacion en el if...
ahora tu validacion es una negacion (de ?!) si lo que quieres es saber si una variable esta vacia o nula puedes usar otras funciones
puedes echar un vistazo a este mensaje tal vez te se de ayuda
http://foros.solocodigo.com/index.php?show...ndpost&p=109326
espero te sirva
Saludos
Avalon:
Hola. Es posible que en el servidor de pago no tengas activado el register_globals con lo que no podrás acceder a las variables que se han enviado de la forma $opcion sino que deberás acceder a ellas mediante $_POST['opcion'].
Para que no tengas que modificar el código y sustituir todas las apariciones de $opcion por $_POST['opcion'] y $buscar por $_POST['buscar'] puedes añadir lo siguiente al principio de tu código PHP.
--- Código: Text ---while ($HTTPVAR = each($_POST)) { ${$HTTPVAR[0]} = $HTTPVAR[1];}
Con esto crearás variables con el respectivo nombre de cada elemento del array $_POST y su valor correspondiente.
Salu2,
Avalon
moyo18:
ya intente como dice F_Tanori
mira la nueva parte del nuevo codigo me queda asi
--- Código: Text ---$buscar=trim($buscar); if (trim($buscar)!="" ) { echo "No has introducido los datos necesarios para la busqueda."; exit; }
viendo la otra pagina q dejaste probe asi y no funciono , ptambien probe usando nada mas esat linea , ya ni tira el mensaje
--- Citar ---No has introducido los datos necesarios para la busqueda
--- Fin de la cita ---
--- Código: Text ---$buscar=trim($buscar); y no funciiono no muestra los resultados siempre me sale q ponga los datos y ya lo estoy poniendo, pero en mi server local me funciona bien :S.
tambien cuando pongo el codigo d arriba
--- Código: Text ---buscar=trim($buscar); if (trim($buscar)!="" )
me sale un error
--- Citar ---Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/nuevajer/public_html/registro/buscar.php on line 38
--- Fin de la cita ---
borro esa parte del codigo q nada mas es como un contador para ver los miembros q saldrian encontrados por la busqueda, pero al darle buscar me sale nada mas Miembros encontrados y no muestra nada.
por el de avalon me sirvio de maravilla el codigo, muchas gacias ;) . no necesite modificar nada.
truxo:
Hola
Opino igual que Avalon, es por register_globals
--- Código: Text --- if ( !isset ( $_POST['buscar'] ) || empty ( $_POST['buscar'] ) ){ die ( 'Campo x vacio' );} $opcion = addslashes ( $_POST['opcion'] ); $buscar = addslashes ( $_POST['buscar'] );
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa