Foros del Web » Programando para Internet » PHP »

Ayuda con mi buscador De Base De Datos

Estas en el tema de Ayuda con mi buscador De Base De Datos en el foro de PHP en Foros del Web. Hola amigos tengo este codigo de un buscador en mi web: Código PHP: <?php $MENU  =  $_POST [ 'menu' ]; ?> <?php $busca = "" ...
  #1 (permalink)  
Antiguo 24/07/2010, 22:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Pregunta Ayuda con mi buscador De Base De Datos

Hola amigos tengo este codigo de un buscador en mi web:

Código PHP:
<?php
$MENU 
$_POST['menu'];
?>
<?php
$busca
="";
$busca=$_POST['busca'];
mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxxx");//nombre de la base de datos
if($busca!=""){
$busqueda=mysql_query("SELECT * FROM ".$MENU." WHERE NOMBRE LIKE '%".$busca."%' OR DESCRIPCION LIKE '%".$busca."%'");//cambiar tu la tabla de busqueda
while($f=mysql_fetch_array($busqueda)){
?>
y mi problema es el siguiente:

Por ejemplo: cuando publico temas Con el nombre "Licencia de nod32 4" Y buscan con mi buscador ese tema de la siguiente manera: "licencia para nod32 4" o "licencia de nod324" O simplemente si separan alguna letra al momento de buscar No me muestra resultados simplementes por que escribio el "para" o el nod324 con el "4" pegado a nod32! o algo similar.

alguien me podria ayudar con un codigo para que me muestre los resultados sin necesidad de tener que escribir perfectamente el nombre del tema si no que si coincide una palabra me muestre el resultado sin necesidad de coincidir todas!

Ayuda..
Gracias de antemano!

Última edición por L4NS; 24/07/2010 a las 22:22
  #2 (permalink)  
Antiguo 24/07/2010, 23:25
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con mi buscador De Base De Datos

Buenas como estas de verdad espero ayudarte tengo mucho tiemp q no and en el post, pro bueno la manera q se me ocurre q puedas solucionar eso es separando tu cadena de texto por lo espacios, es decir si tienes "Licencia de nod32 4" quede asi "Licencia","de","nod32","4" y de hay realizar tu query.
Bueno el codigo seria asi, espero y te sirva mi informacion y perdona si no:
Código PHP:
Ver original
  1. <?php
  2. $MENU = $_POST['menu'];
  3. ?>
  4. <?php
  5. $busca="";
  6. $busca="Daniel SDantand andasdhuh";
  7. mysql_connect("xxx","xxx","xxx");
  8. mysql_select_db("xxxx");//nombre de la base de datos
  9. if($busca!=""){
  10. $query="SELECT * FROM ".$MENU."WHERE";
  11. $subcad=explode(" ",$busca);
  12. for ($a=0;$a<count($subcad);$a++){
  13. $query.= " NOMBRE LIKE '%".$subcad[$a]."%' ";
  14. if ($a<count($subcad)-1) $query.= " OR ";
  15. }
  16. }
  17. $busqueda=mysql_query($query);//cambiar tu la tabla de busqueda
  18. ?>
  #3 (permalink)  
Antiguo 25/07/2010, 01:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Ayuda con mi buscador De Base De Datos

amigo pero con que sentencia echo mostraria los datos?
no entiendo alli!

seria asi?

echo $a['FECHA'];

como amigo?
  #4 (permalink)  
Antiguo 25/07/2010, 06:05
Avatar de JordyRCC  
Fecha de Ingreso: julio-2010
Ubicación: En una cabaña, rodeado de contraseñas encriptadas en md5
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Ayuda con mi buscador De Base De Datos

Código PHP:
Ver original
  1. <?php
  2. $MENU = $_POST['menu'];
  3. ?>
  4. <?php
  5. $busca="";
  6. $busca=$_POST['busca'];
  7. mysql_connect("xxx","xxx","xxx");
  8. mysql_select_db("xxxx");//nombre de la base de datos
  9. if($busca!=""){
  10. $query="SELECT * FROM ".$MENU."WHERE";
  11. $subcad=explode(" ",$busca);
  12. for ($a=0;$a<count($subcad);$a++){
  13. $query.= " NOMBRE LIKE '%".$subcad[$a]."%' ";
  14. if ($a<count($subcad)-1) $query.= " OR ";
  15. }
  16. }
  17. $busqueda=mysql_query($query);//cambiar tu la tabla de busqueda
  18. while($f=mysql_fetch_array($busqueda)){
  19. echo $f['nombre']."<br />"; //Introduce en este bucle de examinación del resultado los datos que quieras mostrar.
  20. }
  21. ?>
  #5 (permalink)  
Antiguo 25/07/2010, 12:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Pregunta

Amigo me aparece que hay un error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a2819388/public_html/resultados.php on line 303

que es esta linea:

while($f=mysql_fetch_array($busqueda)){

no se por que amigo me puedes ayudar, yo hice algo asi antes de pregntar y me lanzo ese mismo error, sera que me puedes ayudar?

Gracias de antemano!

Código PHP:
      <?php
      $MENU 
$_POST['menu'];
      
?>
       <?php
      $busca
="";
      
$busca=$_POST['busca'];
      
mysql_connect("xxx","xxx","xxx");
      
mysql_select_db("xxxx");//nombre de la base de datos
      
if($busca!=""){
      
$query="SELECT * FROM ".$MENU."WHERE";
      
$subcad=explode(" ",$busca);
      for (
$a=0;$a<count($subcad);$a++){
      
$query.= " NOMBRE LIKE '%".$subcad[$a]."%' ";
      if (
$a<count($subcad)-1$query.= " OR ";
      }
      }
      
$busqueda=mysql_query($query);//cambiar tu la tabla de busqueda
      
while($f=mysql_fetch_array($busqueda)){
      echo 
$f['nombre']."<br />"//Introduce en este bucle de examinación del resultado los datos que quieras mostrar.
      
}
      
?>
me dice que hay este error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a2819388/public_html/resultados.php on line 303

que es esta linea:
while($f=mysql_fetch_array($busqueda)){

Por favor ayudenme no se como resolverlo!

Última edición por GatorV; 25/07/2010 a las 21:02
  #6 (permalink)  
Antiguo 25/07/2010, 16:57
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: ¿Alguien me ayuda con este error?

esto esta mal

$query="SELECT * FROM ".$MENU."WHERE";

where que?

el problema debe estar alli
  #7 (permalink)  
Antiguo 25/07/2010, 17:03
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ¿Alguien me ayuda con este error?

Vamos a debuggear un poco. Antes de

$busqueda=mysql_query($query);//cambiar tu la tabla de busqueda

Haz un

echo $query;exit();

Y pega aqui el resultado
  #8 (permalink)  
Antiguo 25/07/2010, 17:20
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: ¿Alguien me ayuda con este error?

me lanza esto amigo:

SELECT * FROM juegosWHERE NOMBRE LIKE '%counter%' OR NOMBRE LIKE '%strike%'

que debo hacer?
este codigo es el de un buscador de base de datos, Ayuda por favor, lo que quiero es que me muestre los resultados sin necesidad de tener que escribir perfectamente el nombre del tema si no que si coincide una palabra me muestre el resultado sin necesidad de coincidir todas las palabras! les muestro este codigo:

Código PHP:
<?php
$MENU 
$_POST['menu'];
?>
<?php
$busca
="";
$busca=$_POST['busca'];
mysql_connect(xxx,xxx,xxx);
     
mysql_select_db(xxxxxx);//nombre de la base de datos
if($busca!=""){
$busqueda=mysql_query("SELECT * FROM ".$MENU." WHERE NOMBRE LIKE '%".$busca."%' OR DESCRIPCION LIKE '%".$busca."%'");//cambiar tu la tabla de busqueda
while($a=mysql_fetch_array($busqueda)){
?>
Este si me sirve pero que pasa? que cuando busco un tema por ejemplo que se llama Gunbound trainer, y lo busco Alreves es decir trainer de gunbound, no me lo muestra por que simplemente esta al reves o por que ponen alguna palabra de mas o una coma o etc, lo que quiero es que me muestre los resultados sin tener que coincidir todo a la perfeccion, que asi coincida una sola palabra me muestre el tema!

Última edición por L4NS; 25/07/2010 a las 17:27
  #9 (permalink)  
Antiguo 25/07/2010, 17:22
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: ¿Alguien me ayuda con este error?

SELECT * FROM juegosWHERE NOMBRE LIKE '%counter%' OR NOMBRE LIKE '%strike%'

Eso esta como ..... ¡muy junto eh!
  #10 (permalink)  
Antiguo 25/07/2010, 18:10
 
Fecha de Ingreso: mayo-2010
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 1
Pregunta Respuesta: ¿Alguien me ayuda con este error?

Amigoo muy bien Gracias ese era el error ahora tengo un problema,cuando hago la busqueda por ejemplo el tema se llama "Gunbound trainer", y lo busco como "trainer de gunbound" el tema me aparece de ultimo o si no me aparece en la mitad, por que? como puedo mostrar los temas por mayor numero de coincidencia? agradeceria que me ayudaras con un codigo bro soy un poco nuevo! y a veces me muestra temas que ni tienen que ver, por que amigo?

el codigo quedo asi:

Código PHP:
<?php
      $MENU 
$_POST['menu'];
      
?>
       <?php
      $busca
="";
      
$busca=$_POST['busca'];
      
mysql_connect($hostname_xtreme_book,$username_xtreme_book,$password_xtreme_book);
     
mysql_select_db($database_xtreme_book$xtremebook);//nombre de la base de datos
      
if($busca!=""){
      
$query="SELECT * FROM ".$MENU." WHERE" ;
      
$subcad=explode(" ",$busca);
      for (
$a=0;$a<count($subcad);$a++){
      
$query.= " NOMBRE LIKE '%".$subcad[$a]."%' ";
      if (
$a<count($subcad)-1$query.= " OR ";
      }
      }
      
      
$busqueda=mysql_query($query);//cambiar tu la tabla de busqueda
      
while($a=mysql_fetch_array($busqueda)){
      
      
      
?>

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




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