Foros del Web » Programando para Internet » PHP »

Buscar coincidencias de consultas

Estas en el tema de Buscar coincidencias de consultas en el foro de PHP en Foros del Web. Intento buscar las coincidencias de dos consultas MySQL a través de mysql_fetch_array usando la función array_intersect(); ¿es posible?¿alguien tiene algún ejemplo que pueda servirme de ...
  #1 (permalink)  
Antiguo 12/09/2011, 05:14
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Buscar coincidencias de consultas

Intento buscar las coincidencias de dos consultas MySQL a través de mysql_fetch_array usando la función array_intersect();
¿es posible?¿alguien tiene algún ejemplo que pueda servirme de ayuda?
Gracias
  #2 (permalink)  
Antiguo 12/09/2011, 05:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscar coincidencias de consultas

Si todos los resultados están en un mismo array ¿qué tal si usas array_count_values? Cuando te devuelva dos o más ya sabes que hubo coincidencias.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 13/09/2011, 05:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Buscar coincidencias de consultas

Gracias abimaelrc, pero lo que yo necesito es sacar un dato coincidente no el número de ellas. Este es un intento fallidos:
Código:
$grupos_por_curso=mysql_query("SELECT name FROM ".$CFG->prefix."groups  WHERE courseid = $curso");

$a=1;
while($re_grupos_por_curso = mysql_fetch_array($grupos_por_curso)){
$lista1=$lista1.", $a => $re_grupos_por_curso[name]";
$a++;
}//while
//for($a=1;$a<=$n;$a++){
//}
$grupos_por_usuario=mysql_query("SELECT groupid FROM ".$CFG->prefix."groups_members WHERE userid=$usuario");  
while($re_grupos_por_usuario = mysql_fetch_array($grupos_por_usuario)) {
$nombre_grupo_por_usuario=mysql_query("SELECT name FROM ".$CFG->prefix."groups WHERE id=$re_grupos_por_usuario[groupid]");
$re_nombre_del_grupo=mysql_fetch_array($nombre_grupo_por_usuario);
  $lista2=$lista2.", ".$re_nombre_del_grupo[name];
}//while

$por_curso =array(0=>"por_curso" , $lista1);
$por_usuario = /*$re_grupos_por_usuario;*/array("por_usuario" , "pepe");
$grupo = array_intersect($por_curso, $por_usuario);
En definitiva, lo que yo necesito es poder pasar los datos de la BBDD MySQL a un array para despues poder sacar la intersección con array_intersect().
  #4 (permalink)  
Antiguo 13/09/2011, 06:31
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Buscar coincidencias de consultas

y con

http://www.php.net/manual/es/functio...-intersect.php
  #5 (permalink)  
Antiguo 13/09/2011, 06:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Buscar coincidencias de consultas

Sí miktrv, con eso pretendo hacerlo, pero no sé como pasar los datos dacados mediante mysql_fetch_array a un array en php.
  #6 (permalink)  
Antiguo 13/09/2011, 07:18
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Buscar coincidencias de consultas

while($resul = mysql_fetch_array($query)){

}

Esto?? revísalo esta hecho de memoria.

Dentro del while puedes hacer $array_limpio[] = $resul, o con array_push
  #7 (permalink)  
Antiguo 13/09/2011, 10:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Buscar coincidencias de consultas

con esto:
Código:
while($re_grupos_por_curso = mysql_fetch_array($grupos_por_curso)){
$por_curso=$re_grupos_por_curso;
}
Sólo da en dato. Parace que el cursos se para.
Array ( [0] => Convocatoria II [name] => Convocatoria II )

y con esto:
Código:
while($re_grupos_por_curso = mysql_fetch_array($grupos_por_curso)){
$por_curso=$por_curso.$re_grupos_por_curso;
}
da: ArrayArray
  #8 (permalink)  
Antiguo 13/09/2011, 10:29
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Buscar coincidencias de consultas

Deberías de acer que se añadan al array...

por ejemplo

$a = array(1,2,3);
$b = array(4,5,6);

foreach($a as $item) {

$b[] = $item;

}


si haces print_r($b) tendrías que ver el resultado
  #9 (permalink)  
Antiguo 13/09/2011, 12:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Buscar coincidencias de consultas

NO hay manera. Ahora me devuelve arrays dentro de arrays. Y si pongo esto...
Código:
while($re_grupos_por_curso[] = mysql_fetch_array($grupos_por_curso)){
$por_curso=$re_grupos_por_curso;
}
...Lo mismo.
No me imaginaba que me diera tantos dolores de cabeza. El fin y al cabo se trata de meter una consulta MySQL en un Array php.
Gracias de todos modos. Lo sigo intentando.
  #10 (permalink)  
Antiguo 13/09/2011, 12:11
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Buscar coincidencias de consultas

Puedes hacer lo siguiente:

while...


array_push($mi_array, array(

'indice' => $resul['indice']
));


fin while
  #11 (permalink)  
Antiguo 14/09/2011, 02:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Buscar coincidencias de consultas

Lo conseguí:
Código:
$grupos_por_curso=mysql_query("SELECT name FROM ".$CFG->prefix."groups  WHERE courseid = $curso");
while($re_grupos_por_curso = mysql_fetch_array($grupos_por_curso)){
$lista1=$lista1."-".$re_grupos_por_curso[name];
}
$array_por_curso=explode("-",substr($lista1, 1));
Esto ya funciona con array_intersect().

He tenido que convertir en cadena de texto y volver a convertir en array porque el que sacaba mysql_fetch_array sacaba arrays dentro de arrays. No sé si será muy ortodoxo, pero ha quedado limpio y funciona.
Gracias por las aportaciones.

Etiquetas: coincidencias, 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:33.