Foros del Web » Programando para Internet » PHP »

Problema con buscador

Estas en el tema de Problema con buscador en el foro de PHP en Foros del Web. A ver si me podeis hechar una mano, estoy haciendo un buscador para que mire en la bd por dos condiciones que le pongo Código ...
  #1 (permalink)  
Antiguo 17/02/2005, 13:34
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema con buscador

A ver si me podeis hechar una mano, estoy haciendo un buscador para que mire en la bd por dos condiciones que le pongo
Código PHP:
<?php
$refe
=$_POST['referencia'];
$tinmueble=$_POST['tipoinmueble'];
 include(
"conectobd.php");
// $link=Conectarse();


$sql="SELECT * FROM pisos_venta WHERE    referencia LIKE '%".$refe."%' AND id_tipo_inmueble LIKE '%".$tinmueble."%' "

$result mysql_query($sql) or die ("Error en $sql :".mysql_error());
echo 
"".$refe.""//compruebo que llega la variable y llega bien
echo "".$tinmueble.""//compruebo que llega la variable y llega bien
if (mysql_fetch_array($result))  // me habia comido este if.
{
// Si hay resultados crea una tabla y los muestra
?>
<table border="0">
<?
while ($row=mysql_fetch_array($result))
{
 echo
"REFERENCIA:".$row['referencia']."<BR>"
 echo 
"DESCRIPCIÓN:".$row['descripcion']."<BR><br>"

// aqui se cierra el while

}
mysql_close (); 
// mysql_close($link);
?>
Le digo que me dé el registro que tiene esa referencia y ese tipo de inmueble el caso es que con las dos condiciones no soy capaz de que funcione, recojo bien las variables que mando desde la otra página pero a la hora de que busque en la base de datos un registro que tenga en el campo 1 el valor X y en el campo 2 el valor Y no encuentra nada y si hay registros que cumplan esas condiciones, puede tener algo que ver que los valores se repiten tanto en la columna del campo 1 como en el campo 2 pero nunca se repiten cumpliendo que campo 1 y campo 2 tenga ese valor que se les pide, por ejemplo puede haber varios campos1 con el valor X y varios campos2 con el valor Y pero nunca va a haber más de un campo1 con el valor X y campo2 con el valor Y a la vez, vale, si me podeis hechar una mano
  #2 (permalink)  
Antiguo 17/02/2005, 14:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Esto no es correcto:

if (mysql_fetch_array($result)) // me habia comido este if.
{
// Si hay resultados crea una tabla y los muestra
?>
<table border="0">
<?
while ($row=mysql_fetch_array($result))
{


Cada vez que tu ejecutas mysql_fetch_array() se mueve el puntero del resultado una posición hacia adelante .. así que si siempre veras desde el 2° resultado ..

No debes usar mysql_fecht_arrary() para ver si hay resultados .. sino mysql_num_rows() que para eso hace dicha función (te devolverá el n° de resultados .. ya sabes que si es >0 es que hay resultados ..)

Por otra parte ..
id_tipo_inmueble es un numero único? .. si es así .. por qué usas "LIKE" .. debería ser = ...

Revisa esos puntos y cuentanos como te fué.

Un saludo,
  #3 (permalink)  
Antiguo 17/02/2005, 14:56
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Gracias Cluster, mira ahora lo puse así
Código PHP:
<?php
$refe
=$_POST['referencia'];
$tinmueble=$_POST['tipoinmueble'];
 include(
"conectobd.php");
// $link=Conectarse();


$sql="SELECT * FROM pisos_venta WHERE    referencia='$refe' AND id_tipo_inmueble='$tinmueble' "
$result mysql_query($sql) or die ("Error en $sql :".mysql_error());
echo 
"".$refe."";
echo 
"".$tinmueble."";
if (
mysql_num_rows($resul))  //ESTA ES LA LÍNEA 21 QUE DA ERROR
{

while (
$row=mysql_num_rows($result))
{
 echo
"REFERENCIA:".$result['referencia']."<BR>"
 echo 
"DESCRIPCIÓN:".$result['descripcion']."<BR><br>"

// aqui se cierra el while

}
mysql_close (); 
// mysql_close($link);
?>
y me arroja este error en la línea 21 que marco en el código,
Código PHP:
Warningmysql_num_rows(): supplied argument is not a valid MySQL result resource 
tendré mal el if?
  #4 (permalink)  
Antiguo 17/02/2005, 16:24
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por Cluster
mysql_num_rows() que para eso hace dicha función (te devolverá el n° de resultados .. ya sabes que si es >0 es que hay resultados ..)
Lee bien . Tu if deberia ir algo así:
if(mysql_num_rows($result)>0) {...
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 18/02/2005, 06:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ademas de lo que comenta jpinedo .. cuando tengas un "error" debes indicar expresamente cual es .. no somos adivinos (aunque podamos ver que te faltó una t en $resul .. $result .. y el uso no es correcto como en el ejemplo que ya te dejé).

Un saludo,
  #6 (permalink)  
Antiguo 18/02/2005, 07:41
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Cita:
Iniciado por mon
y me arroja este error en la línea 21 que marco en el código,
Código PHP:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

tendré mal el if?
Gracias, el error que daba lo puse en el mensaje de arriba, de todos modos gracias por la molestia
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 15:14.