Foros del Web » Programando para Internet » PHP »

PHP y MySql error en busqueda

Estas en el tema de PHP y MySql error en busqueda en el foro de PHP en Foros del Web. Hola, Tengo esta linea http://dominio.com/index.php?search=house y mi pagina index.php tiene estas lineas de programacion: Código PHP: $link  =  mysql_connect ( "localhost" ,  "root" ,  "" ...
  #1 (permalink)  
Antiguo 30/04/2003, 15:01
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
PHP y MySql error en busqueda

Hola,

Tengo esta linea

http://dominio.com/index.php?search=house


y mi pagina index.php tiene estas lineas de programacion:

Código PHP:
$link mysql_connect("localhost""root""");
mysql_select_db("realestate"$link);
$sql "SELECT * FROM rent WHERE (type LIKE '%$search%') ORDER BY bedroom, rateh, ratel";
$result mysql_query($sql$link); 
EL error esta que me da como resultado todas..... no solo house que en este caso es el contenido de 'search'


De antemano GRACIAS,..
__________________
Saludos
Rnstho Luna
go2mexico.com
  #2 (permalink)  
Antiguo 30/04/2003, 15:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y estás seguro que $seach toma el valor esperado antes de atacar tu consulta? ..

o dicho de otra forma .. has hecho un :

Código PHP:
$sql=".....";
echo 
$sql
Para comprobar si la consulta se genera con la sintax que esperas?

bueno .. si resulta que no obtienes nada en $search .. mejor usa (ademas que es ALTAMENTE recomendable) que uses los arrays superglobales:

Código PHP:
//Al principio de tu script ..
$search=$_GET['search']; 
O en su defecto (si uas PHP inferior a la versión 4.1.x): $HTTP_GET_VARS['search']

Te invito a que leas esta FAQ:
http://www.forosdelweb.com/showthrea...989#post238989
(es y la anterior FAQ)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/04/2003, 15:14
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
Cluster,

Uso php4.1.2

y hice esto echo $HTTP_GET_VARS['search'];

el resultado fue correcto -> house

pero me envia como resultado todas las propiedades.... :(
__________________
Saludos
Rnstho Luna
go2mexico.com
  #4 (permalink)  
Antiguo 30/04/2003, 15:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando dices "propiedades" a que te refieres? Pon la estructura de tu tabla (campos nombre) y que es lo que quieres hacer ..


De todas formas LIKE junto con los willcards (comodines) % por delante y por detras % de la cadena a buscar .. buscarar todas las coincidencitas tipo:

house
houses
nosehouse
nose house blabla

etc ..

Así que si quiers algo "exacto" house .. usa WHERE type='$search' .. (y no hace falta los parentesis .. )

Pero .. lo dices es que recoges el valor correcto via $HTTP_GET_VARS .. pero, la consulta como la haces ahora?

Deberías usar lo que te comenté de $search=$_GET['search'] .. pues usas PHP 4.1.x o superior .. O bien lo concatenas en tu $sql ..

Cualquier duda con el SQL de Msyql .. usa el manual oficial de Mysql:

www.mysql.com/doc

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 30/04/2003, 15:45
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
Con propiedades me refieria a House, Villas Condos..

Uso php4.3.0

Ahora ya me di cuenta que mi error esta en otro lado y no en la variable...

Porque? pues porque la variable, si contiene el dato correcto.

Pero la instruccion a MySQL esta fallando ...

Intente esto:
1.- SELECT * FROM rent WHERE (type LIKE house) ORDER BY bedroom, rateh, ratel

2.- 1.- SELECT * FROM rent WHERE type=house ORDER BY bedroom, rateh, ratel

Y ninguno de los 2 funciona...

ahora 'rent' es el nombre de mi tabla dentro de la BD...

y 'type' es el nombre de una celda (campo) dentro de la tabla 'rent'..

Por alguna causa, no va al campo correcto y busca la concidencia.
__________________
Saludos
Rnstho Luna
go2mexico.com
  #6 (permalink)  
Antiguo 30/04/2003, 16:00
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
El campo 'type' en mi BD es VARCHAR(5)

Te comento esto por que cambie, la busque la hice por recamaras..

SELECT * FROM rent WHERE bedroom LIKE $search ORDER BY bedroom, rateh, ratel

Y buaalaa funciono.. pero el campo bedroom es DECIMAL(3,0)

Creo esta fallando por el formato de mi campo en la BD...

Lo raro es que hasta hace 3 dias, funcionaba.... con MySql 3.23.40 y ahora con 3.23.52 ya no.. :(
__________________
Saludos
Rnstho Luna
go2mexico.com
  #7 (permalink)  
Antiguo 30/04/2003, 16:21
Avatar de Rnsto  
Fecha de Ingreso: marzo-2002
Ubicación: Puerto Vallarta, Mexico
Mensajes: 204
Antigüedad: 15 años, 9 meses
Puntos: 0
Ya esta.. GRACIAS Cluster

Yo tenia php4.1 y Mysql 3.23.40 y actualize a php4.3 y mysql 3.23.52 luego entonces ya nada funciono... pero ya lo he podido resolver.. y gracias.-...

por si a algien le interesa.. asi quedo....

Código PHP:
$search=$_GET['search'];
$link mysql_connect("localhost""root""");
mysql_select_db("realestate"$link);
$sql "SELECT * FROM rent WHERE type LIKE '$search' ORDER BY bedroom, rateh, ratel"
__________________
Saludos
Rnstho Luna
go2mexico.com
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 19:24.