Programación Web y Scripting > PHP

 Problema Con Busquedas Php Y Mysql

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa