Foros del Web » Programando para Internet » PHP »

Varios resultados mysql

Estas en el tema de Varios resultados mysql en el foro de PHP en Foros del Web. Buenas a todo, estoy haciendo un buscador para mi base mysql, y he conseguido q busque en los diferentes campos con match Código PHP: mysql_query ...
  #1 (permalink)  
Antiguo 23/09/2012, 14:18
 
Fecha de Ingreso: julio-2012
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Varios resultados mysql

Buenas a todo, estoy haciendo un buscador para mi base mysql, y he conseguido q busque en los diferentes campos con match
Código PHP:
mysql_query("SELECT * FROM music WHERE MATCH(titulo, artista, album, letra) AGAINST ('$search')"
pero me gustaria que cuando coincidiera con mas de una fila de la tabla, me mostrara todas la q coinciden
¿como podria hacerlo?
cuando escribo una consulta en phpmyadmin con "SELECT * FROM music WHERE MATCH(titulo, artista, album, letra) AGAINST ('nombre')" si q me muestra todos lo q tienen ese nombre, o parte de la letra...
pero al poner esto en php solo me muestra uno

¿alguien me podria ayudar?
  #2 (permalink)  
Antiguo 23/09/2012, 16:01
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: Varios resultados mysql

Holas,

Y como estas usando esa consulta en el PHP ?.

Saludos
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 24/09/2012, 08:17
 
Fecha de Ingreso: julio-2012
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Varios resultados mysql

Cita:
Iniciado por gildus Ver Mensaje
Holas,

Y como estas usando esa consulta en el PHP ?.

Saludos
tengo un formulario q envia una frase($search)
Código PHP:
<?php

mysql_connect
("localhost""root""****");
mysql_select_db("goodmusic");

$search=$_POST['search'];
$search=str_replace("'",'',$search); 

$f=mysql_fetch_array(mysql_query("SELECT * FROM music WHERE MATCH(titulo, artista, album, letra) AGAINST ('$search')"));
?>
Me gustaria poner poner una tabla con los diferentes resultados

Última edición por carriofamily; 24/09/2012 a las 08:29
  #4 (permalink)  
Antiguo 24/09/2012, 12:38
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: Varios resultados mysql

Pues justo la linea:

Código PHP:
Ver original
  1. $f=mysql_fetch_array(mysql_query("SELECT * FROM music WHERE MATCH(titulo, artista, album, letra) AGAINST ('$search')"));

Deberia de usarlo en un bucle, por ejemplo while:

Código PHP:
Ver original
  1. while($f=mysql_fetch_array(mysql_query("SELECT * FROM music WHERE MATCH(titulo, artista, album, letra) AGAINST ('$search')"))){
  2.  echo $f['titulo'].' - '.$f['artista'].'</br>';
  3. }
Saludos,
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 24/09/2012, 14:04
 
Fecha de Ingreso: julio-2012
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Varios resultados mysql

pero cuando hay mas de un autor igual, me devuelve un valor vacio la consulta, encanvio si solo hay una fila con ese autor me la muestra
  #6 (permalink)  
Antiguo 24/09/2012, 14:45
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Respuesta: Varios resultados mysql

Disculpa por no mencionarlo, pero creo que es mejor asi:

Código PHP:
Ver original
  1. $res = mysql_query("SELECT * FROM music WHERE MATCH(titulo, artista, album, letra) AGAINST ('$search')");
  2.  
  3. while($f=mysql_fetch_array($res)){
  4.  echo $f['titulo'].' - '.$f['artista'].'</br>';
  5. }

El resultado depende tu SQL, eso ya escapa de lo que quieras mostrar con el PHP.

Saludos,
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 24/09/2012, 20:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Varios resultados mysql

Cita:
Iniciado por carriofamily Ver Mensaje
pero cuando hay mas de un autor igual, me devuelve un valor vacio la consulta, encanvio si solo hay una fila con ese autor me la muestra
Es un problema que se produce porque la lógica del MATCH... AGAINST es inversa a lo que se supone.
El objetivo de este tipo de búsquedas es obtener respuestas en base a la relevancia de un objeto en el contexto de los que existen. Si el objeto, es por decirlo, "raro" o "poco usual", su hallazgo es muy relevante.
Pero si el objeto aparece muchas veces, no se puede hablar de que sea algo destacable, sino que es muy común... y por tanto resulta irrelevante.
En definitiva, el MATCH... AGAINST... considera poco importantes aquellas busquedas donde el objeto buscado aparezca demasiadas veces, por lo que el resultdo de la consulta será siempre al reves de lo que supones.

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 25/09/2012, 07:23
 
Fecha de Ingreso: julio-2012
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Varios resultados mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es un problema que se produce porque la lógica del MATCH... AGAINST es inversa a lo que se supone.
El objetivo de este tipo de búsquedas es obtener respuestas en base a la relevancia de un objeto en el contexto de los que existen. Si el objeto, es por decirlo, "raro" o "poco usual", su hallazgo es muy relevante.
Pero si el objeto aparece muchas veces, no se puede hablar de que sea algo destacable, sino que es muy común... y por tanto resulta irrelevante.
En definitiva, el MATCH... AGAINST... considera poco importantes aquellas busquedas donde el objeto buscado aparezca demasiadas veces, por lo que el resultdo de la consulta será siempre al reves de lo que supones.

¿Se entiende la idea?
si, entonces mi pregunta seria como crear una busqeda asi?

xq yo vi en una pagina q usando el match agains se podia ordenar por puntuacion o algo asi.
gracias
  #9 (permalink)  
Antiguo 27/09/2012, 15:15
 
Fecha de Ingreso: julio-2012
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Varios resultados mysql

ahora estoy realizando un insert
y esta todo correcto pero no introduce la los datos q pasa
este es el codigo
Código PHP:
$sql "INSERT INTO music (titulo, artista, album, letra, ncancion, nalbum, genero, duracion, año) VALUES ('$titulo', '$autor', '$album', '$letra', '$nc', '$na', '$genero', '$duracion', '$año')";

mysql_query($sql); 

Etiquetas: mysql
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 12:56.