Foros del Web » Programando para Internet » PHP »

Problema con mi código de buscador

Estas en el tema de Problema con mi código de buscador en el foro de PHP en Foros del Web. Buenas atrdes, esto creando un buscador que consulte en una base de datos msql. tengo 3 archivos (2 php y uno html) que son los ...
  #1 (permalink)  
Antiguo 01/06/2010, 13:59
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Exclamación Problema con mi código de buscador

Buenas atrdes, esto creando un buscador que consulte en una base de datos msql. tengo 3 archivos (2 php y uno html) que son los siguientes:

buscador.php

que tiene el siguiente codigo:

Cita:
<?php

include("conexion.php"); //Incluimos un archivo de conexion a MySQL.

$sql="SELECT * FROM nuke_store_inventory WHERE title LIKE ‘%".$palabra."%’"; // SQL para la búsqueda
$result=mysql_query($sql,$link);

if ($row= mysql_fetch_array($result)) // Si hay resultados crea una tabla y los muestra
{
echo "<TABLE BORDER=′0′>";
DO
{
echo "$row["title"]";
}
WHILE ($row=mysql_fetch_array($result));
echo "</TABLE>";
}
mysql_close ($link);
?>
conexion.php

Cita:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_user = "localhost";
$database_user = "ng000636_wi010113";
$username_user = "ng000636";
$password_user = "XXXXXXXXXX";
$user = mysql_connect($hostname_user, $username_user, $password_user);
mysql_select_db("ng000636_wi010113");
?>
y por ultimo el archivo

form.html

Cita:
<body>
<FORM ACTION="buscador.php">
<INPUT TYPE="TEXT" NAME="palabra">
<INPUT TYPE="SUBMIT" NAME="Buscar">
</body>
</html>
me esta arrojando el siguiente error:


Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/ng000636/public_html/phpnuke/buscador/buscador.php on line 13

como puedo solucionar esto? que puedo hacer? o a que se debe? :S me duele la cabeza de las hora que he dedicado tratando de arreglarlo y hacer que funcione.
  #2 (permalink)  
Antiguo 01/06/2010, 14:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con mi código de buscador

tienes problemas con las comillas...

te sugiero leer lo siguiente:
http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/06/2010, 14:09
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema con mi código de buscador

Modifique las comilla y el do y el while estaban en mayusculas.

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("conexion.php"); //Incluimos un archivo de conexion a MySQL.
  4.  
  5. $sql="SELECT * FROM nuke_store_inventory WHERE title LIKE '%".$buscar."%'"; // SQL para la búsqueda                                                
  6. $result=mysql_query($sql,$link);
  7.  
  8. if($row= mysql_fetch_array($result)) // Si hay resultados crea una tabla y los muestra
  9. {
  10. echo "<TABLE BORDER='0'><tr><td>";
  11. do
  12. {
  13. echo $row['title'];
  14. }
  15. while($row=mysql_fetch_array($result));
  16. echo "</td></tr></TABLE>";
  17. }
  18. mysql_close($link);
  19.  
  20. ?>
  #4 (permalink)  
Antiguo 02/06/2010, 10:15
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problema con mi código de buscador

gracias voy a testearlo y te comento...
  #5 (permalink)  
Antiguo 02/06/2010, 10:27
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problema con mi código de buscador

Estimado pepeluis he sustituido todo el codigo viejo por el nuevo que me colocaste y aunque el error que me salia desaparecio (gracias a dios), ahora me arroja 3 errores. Lo cuales te detallo a continuacion:

Cita:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/ng000636/public_html/phpnuke/buscador/buscador.php on line 6

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/ng000636/public_html/phpnuke/buscador/buscador.php on line 8

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/ng000636/public_html/phpnuke/buscador/buscador.php on line 18
La linea 6 es esta:

Cita:
$result=mysql_query($sql,$link);
La linea 8 es esta:
Cita:
if($row= mysql_fetch_array($result)) // Si hay resultados crea una tabla y los muestra
la linea 18 es esta:
Cita:
mysql_close($link);
Que puede ser? el servidor de hospedaje que tenga algo bloqueado en su configuración? (yo uso dat ....tec)

La idea es crear un buscador de medicamentos por titulo que me muestre el titulo y el precio solamente, de momento este código creo q buscara solo el titulo del medicamento, pero en un futuro espero mejorarlo para colocárselo a la pagina de nuestra fundación :D

En caso de querer ver la pagina que le diseñe pueden ingresar en www.fundacionbadan.org

No soy programador, me especializo en animaciones pero quiero aprender a programar, así que disculpen mi ignorancia en este tema.
  #6 (permalink)  
Antiguo 02/06/2010, 10:45
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema con mi código de buscador

mmm bien creo que es un problema de conexion la variable $link es la que retorna la conexion.

si puedes pegar el codigo de como estas haciendo tu conexion con gusto te ayadare.
  #7 (permalink)  
Antiguo 02/06/2010, 11:55
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problema con mi código de buscador

Hola estimado pepluis, de verdad que gracias por todo tu apoyo. Aqui te coloco el codigo que estoy usando apra el archivo conexion.php

Cita:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_user = "localhost";
$database_user = "ng000636_wi010113";
$username_user = "ng000636";
$password_user = "XXXXXXXX";
$user = mysql_connect($hostname_user, $username_user, $password_user);
mysql_select_db("ng000636_wi010113");
?>
Puede ser que este mal posiblemente, ya que lo saque de un formato de conex que tenia para un modulo de mi web.

De verdad que estoy muy agradecido, gracias...
  #8 (permalink)  
Antiguo 02/06/2010, 11:58
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Problema con mi código de buscador

Código PHP:
mysql_select_db("ng000636_wi010113"$user); 
Siempre tenes que indicar el conector... le decis, usamos esta base de datos con esta conexion. Saludos!
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #9 (permalink)  
Antiguo 02/06/2010, 12:01
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
ok. voy a intentarlo. no lo pille. intento y te cuento.

Le coloque el soomy pero haroa me sale este error:
Cita:
Parse error: syntax error, unexpected T_VARIABLE in /home/ng000636/public_html/phpnuke/buscador/conexion.php on line 10
Linea 10 es:

Cita:
mysql_select_db("ng000636_wi010113" $user);

Última edición por GatorV; 02/06/2010 a las 20:38
  #10 (permalink)  
Antiguo 02/06/2010, 12:05
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema con mi código de buscador

mira este es un archivo que yo uso para la conexion.


if (!($link=mysql_connect("localhost","usuario","pass word")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("nombre base de datos",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;

y me retorna el $link que es donde tienes el error.
  #11 (permalink)  
Antiguo 02/06/2010, 12:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con mi código de buscador

Cita:
Iniciado por guillermosira2010 Ver Mensaje
Le coloque el soomy pero haroa me sale este error [...]
lo que sucede es que te falto una coma antes de la variable...

Cita:
Iniciado por Sommy Ver Mensaje
Código PHP:
mysql_select_db("ng000636_wi010113"$user); 
y tu lo tienes así!!
Cita:
mysql_select_db("ng000636_wi010113" $user);
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 02/06/2010, 12:57
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problema con mi código de buscador

Al fin! lo he logrado modificando el archivo de conexion quedado asi:

Cita:
<?php
if (!($link=mysql_connect("localhost","ng000636","MUz izuve42")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("ng000636_wi010113",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
?>
ahora bien, el buscador me esta generando la consulta, pero me me trae una lista enorme de productos, algunos que no tienen nada que ver con la palabra introducida en el formulario o la casilla de búsqueda. Que me recomiendan? conocen algún tutorial donde pueda ver el proceso? Como podre hacer q busque 2 contenido en mi base de datos? por ejemplo el titulo y el precio?

Aqui esta el buscador funcionando: http://www.bancodedrogasbadan.com/phpnuke/buscador/form.html

Introducan por ejemplo "MICOFELANATO" y veran que de resultado saldran todo y de forma desordenada

Última edición por guillermosira2010; 02/06/2010 a las 13:03
  #13 (permalink)  
Antiguo 02/06/2010, 13:37
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema con mi código de buscador

prueba con este codigo

<?php

include("conexion.php"); //Incluimos un archivo de conexion a MySQL.



$sql="SELECT * FROM nuke_store_inventory WHERE title LIKE '%".$buscar."%'"; // SQL para la búsqueda

$result=mysql_query($sql,$link);



if($row= mysql_fetch_array($result)) // Si hay resultados crea una tabla y los muestra
{

echo "<TABLE BORDER='0'><tr>";

while($row=mysql_fetch_array($result)){
echo "<td>";
echo $row['title'];
echo "</td>";
}

echo "</tr></TABLE>";
}
mysql_close($link);


?>

no estoy seguro si te sirva pero la idea es repetir el <td> y con eso aparecera organizado.

o como quieres que aparezca.
  #14 (permalink)  
Antiguo 02/06/2010, 13:50
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Problema con mi código de buscador

El codigo si funciono, aunque arrojo los resultados rodenado en columnas y no en fila jajaja pero eso lo resuelvo con logica html jejee :D

Una ultima pregunta:

Como hago para que busque en dos campos y no solo en uno. He estado indagando y creo que tengo que modificar parte de este codigo:

Orginal
Cita:
$sql="SELECT * FROM nuke_store_inventory WHERE title LIKE '%".$buscar."%'";
por algo asi:

$sql="SELECT * FROM nuke_store_inventory WHERE title AND price LIKE '%".$buscar."%'";

no se que tan cierto sea, voy a intentarlo.

Mil gracias a todos, pense que me tardaria mucho mas con estoy pero en un dia he logrado superar muchas cosas que en un mes no pude. Excelente foro.
  #15 (permalink)  
Antiguo 02/06/2010, 13:55
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema con mi código de buscador

yo creeria que podria hacerse asi:

$sql="SELECT * FROM nuke_store_inventory WHERE title LIKE '%".$buscar."%'" AND price LIKE '%".$buscar."%'";
  #16 (permalink)  
Antiguo 03/06/2010, 08:52
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problema con mi código de buscador

ahora presento otro problema q pense q podia solucionar.

Al bsucar una palabra esta be trae como resultado toda la tabla compelta. Independientemente de la palabra que coloque, incluso aun si colocar nada en la casilla de busqueda me llama toda la tabla. :S

Por que ocurre esto?

este es el codigo actualizado que tengo:

Cita:
<?php

include("conexion.php"); //Incluimos un archivo de conexion a MySQL.



$sql="SELECT * FROM nuke_store_inventory WHERE title LIKE '%$Buscar%' AND price LIKE '%$Buscar%'"; // SQL para la búsqueda

$result=mysql_query($sql,$link);



if($row= mysql_fetch_array($result)) // Si hay resultados crea una tabla y los muestra
{

echo "<TABLE BORDER='0'><tr>";

while($row=mysql_fetch_array($result)){
echo "<tr><td>";
echo $row['title'];
echo "</td>";
echo "<td>BsF. </td>";
echo "<td>";
echo $row['price'];
echo "</td></tr>";
}

echo "</tr></TABLE>";
}
mysql_close($link);


?>
Intente modificando esta linea:

Cita:
$sql="SELECT * FROM nuke_store_inventory WHERE title LIKE ('%$Buscar%') AND price LIKE ('%$Buscar%')";
Pero sigue ocurriendo lo mismo :
  #17 (permalink)  
Antiguo 03/06/2010, 09:52
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema con mi código de buscador

El problema esta en que la variable $Buscar esta vacia. Verifique que la variable traiga un dato con un echo porque como esta vacio el consulta toda la tabla.

echo "buscar= ".$buscar;
  #18 (permalink)  
Antiguo 07/06/2010, 07:48
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Problema con mi código de buscador

hola pepe gracias por tu ayuda, he estado todos estos días buscando la info de la variable "echo" para que mi buscador pueda funcionar correctamente, pero lamentablemente para mi no he podido resolver (ando en búsqueda de un curso por mi localidad, porq mis nociones son muy muy muyyyy limitadas en cuanto a php).

La informacion que encontre dice q tengo q hace run indice a una tabla y colocar un codigo similar a este:

Cita:
ELECT * , MATCH (TITULO,DESARROLLO) AGAINST ('$busqueda') AS puntuacion FROM ARTICULOS WHERE MATCH (TITULO, DESARROLLO) AGAINST ('$busqueda') ORDER BY puntuacion DESC LIMIT 50
De lo cual no entiendo ni pío

No existe una forma mas sencilla de poder hacer que reconozca las palabras introducidas en el texbox de mi formulario de búsqueda?

Etiquetas: buscadores
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:14.