Foros del Web » Programando para Internet » PHP »

Extraer parecidos

Estas en el tema de Extraer parecidos en el foro de PHP en Foros del Web. Hola, tengo un problema y es que necesito extraer 5 datos parecidos de una base de datos mysql. Con LIKE en el sql me manda ...
  #1 (permalink)  
Antiguo 17/07/2011, 02:15
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Extraer parecidos

Hola, tengo un problema y es que necesito extraer 5 datos parecidos de una base de datos mysql.

Con LIKE en el sql me manda solo uno, probé a añadir LIMIT 0,5 pero no funcionó.

¿Que puedo hacer para sacar varios parecidos?
__________________
:)
  #2 (permalink)  
Antiguo 17/07/2011, 06:55
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Extraer parecidos

LIMIT 5, probaste con esto???
__________________
aconcaguaestudio.com
  #3 (permalink)  
Antiguo 17/07/2011, 07:04
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Extraer parecidos

Independientemente del LIMIT, si te esta devolviendo 1 es porque solo 1 cumple la condición del LIKE, has comprobado que efectivamente haya mas datos que cumplan la condición ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 17/07/2011, 07:20
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Extraer parecidos

bueno yo me imagino que el sepa que tiene más de uno, o de lo contrario estamos perdiendo el tiempo acá
__________________
aconcaguaestudio.com
  #5 (permalink)  
Antiguo 17/07/2011, 08:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Si, hay más de 10 parecidos. Hice pruebas en local y solo me devuelve 1.

LIMIT 5 sigue devolviendo 1
__________________
:)
  #6 (permalink)  
Antiguo 17/07/2011, 08:52
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Un ej: http://www.tuentimp3.com/lista.php

http://www.tuentimp3.com/lista.php?q=huecc
http://www.tuentimp3.com/lista.php?q=huecco-d
http://www.tuentimp3.com/lista.php?q=huecco-dame-vida

Como vereis si hay parecidos
__________________
:)
  #7 (permalink)  
Antiguo 17/07/2011, 09:00
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Extraer parecidos

Habría que ver el SQL, porque no puede ser, debería devolver todos los registros que cumplan la condición del LIKE, si ejecutas el SQL en la consola te hace lo mismo ?

Con respecto al LIMIT, en el caso LIMIT 5 y LIMIT 0, 5 son lo mismo, te devuelve los primeros 5 registros.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 17/07/2011, 09:04
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Código SQL:
Ver original
  1. FUNCTION parecido ($q){
  2. $conexion = mysql_connect(HOSTDB, USERDB, PASSDB);
  3. mysql_select_db(NAMEDB, $conexion);
  4.  
  5. $queEmp = "SELECT * FROM queries WHERE query LIKE '%$q%'";
  6. $resEmp = mysql_query($queEmp, $conexion) OR die(mysql_error());
  7. $totEmp = mysql_num_rows($resEmp);
  8.  
  9. IF ($totEmp> 0) {
  10.     while ($rowEmp = mysql_fetch_assoc($resEmp)) {
  11.         RETURN $rowEmp['query'];
  12.    
  13.     }
  14. }
  15. }

Esta es la función que estoy utilizando.
__________________
:)
  #9 (permalink)  
Antiguo 17/07/2011, 09:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

El uso que hago de ella es para http://www.tuentimp3.com/lista.php?q=huecc

parecido('huecc');
__________________
:)
  #10 (permalink)  
Antiguo 17/07/2011, 09:12
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Extraer parecidos

Es que tenes un return en el while AplicaWeb, tienes que guardar en un array los datos y retornar el array.

Código PHP:
Ver original
  1. ...
  2. $resultSet = array();
  3. while ($rowEmp = mysql_fetch_assoc($resEmp)) {
  4.     $resultSet[] = $rowEmp['query'];  
  5. }
  6. return $resultSet;
  7. ...

todo esto suponiendo que query es un campo de la tabla queries
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 17/07/2011, 09:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Si, query es un campo de la tabla queries, voy a probar como dices, a ver que tal
__________________
:)
  #12 (permalink)  
Antiguo 17/07/2011, 09:31
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Cambié a
Código PHP:
Ver original
  1. function parecido ($q){
  2. $conexion = mysql_connect(HOSTDB, USERDB, PASSDB);
  3. mysql_select_db(NAMEDB, $conexion);
  4.  
  5. $queEmp = "SELECT * FROM queries WHERE query LIKE '%$q%'";
  6. $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  7. $totEmp = mysql_num_rows($resEmp);
  8.  
  9. $resultSet = array();
  10. while ($rowEmp = mysql_fetch_assoc($resEmp)) {
  11. * * $resultSet[] = $rowEmp['query']; *
  12. }
  13. return $resultSet;
  14.  
  15. }

usando parecido('huecc');

Y no me funciona... ¿alguna idea de lo que le puede pasar?
__________________
:)
  #13 (permalink)  
Antiguo 17/07/2011, 09:33
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Extraer parecidos

Si haces:

Código PHP:
Ver original
  1. print_r(parecido('huecc'));

que te muestra ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #14 (permalink)  
Antiguo 17/07/2011, 09:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Aquí lo puse: http://beta.tuentimp3.com/a.php

Con
Código PHP:
Ver original
  1. define ('HOSTDB', 'localhost');
  2. define ('USERDB', '**********');
  3. define ('PASSDB', '**********');
  4. define ('NAMEDB', '**********');
  5.  
  6. function parecido ($q){
  7. $conexion = mysql_connect(HOSTDB, USERDB, PASSDB);
  8. mysql_select_db(NAMEDB, $conexion);
  9. *
  10. $queEmp = "SELECT * FROM queries WHERE query LIKE '%$q%'";
  11. $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  12. $totEmp = mysql_num_rows($resEmp);
  13. *
  14. $resultSet = array();
  15. while ($rowEmp = mysql_fetch_assoc($resEmp)) {
  16. * * $resultSet[] = $rowEmp['query']; *
  17. }
  18. return $resultSet;
  19. *
  20. }
  21. print_r(parecido('huecc'));

Y me devuelve un error interno
__________________
:)
  #15 (permalink)  
Antiguo 18/07/2011, 08:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Extraer parecidos

Puede ser los * que tienes ahí, esos no deberían de estar en el código.

Saludos.
  #16 (permalink)  
Antiguo 18/07/2011, 14:19
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Extraer parecidos

Cita:
Iniciado por GatorV Ver Mensaje
Puede ser los * que tienes ahí, esos no deberían de estar en el código.

Saludos.
Se pusieron al pegarlo en este foro. Pero no los lleva.
__________________
:)
  #17 (permalink)  
Antiguo 18/07/2011, 14:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Extraer parecidos

Habilita el reporte de errores:
Código PHP:
Ver original
  1. ini_set('display_errors', 'On');

Para que veas los errores.

Saludos.

Etiquetas: mysql, parecidos, sql
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 22:55.