Foros del Web » Programando para Internet » PHP »

Comparar tablas y amigos

Estas en el tema de Comparar tablas y amigos en el foro de PHP en Foros del Web. Hola chicos, he conseguido avanzar y me pone las coincidencias correctamente pero me surge un problema , me salen las coincidencias de todos los usuarios. ...
  #1 (permalink)  
Antiguo 13/04/2012, 05:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Comparar tablas y amigos

Hola chicos, he conseguido avanzar y me pone las coincidencias correctamente pero me surge un problema , me salen las coincidencias de todos los usuarios.

Solo quiero que me salga las coincidencias del usuario1 cuando inicia su sesion correspondiente , o del usuario dos cuando inicia su sesion correspondiente.

Como se podría solucionar eso con otros tipos de consulta?



///amigos o no amigos///
$select_1 = mysql_query("SELECT id_user FROM friends WHERE estado = '1'");
//selecciono la columna ID de la tabla02
$select_2 = mysql_query("SELECT id_friend FROM friends WHERE estado = '1'");
//busco las coincidencias
//numero que guardara las coincidencias
$num = 0;
//busco en todos los resultados de select_1
while($data = mysql_fetch_array($select_1)){
//busco en todos los resultados de select_2
while($data2 = mysql_fetch_array($select_2)){
if($data['id_empresa'] == $data2['id_empresa']){
$num++;
}
}
}
if($num > 0){
echo "Existen ".$num." coincidencias";
}else{
echo "No existen coincidencias";
}
  #2 (permalink)  
Antiguo 13/04/2012, 05:07
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: Comparar tablas y amigos

Hola kfh1992;

no ser como tendrás el resto del código, pero si solo quieres ver un usuario solo tienes que modificar tu consulta y añadir el usuario que quieres que te muestre.
Código PHP:
$select_1 mysql_query("SELECT id_user FROM friends WHERE estado = '1' AND id_user = '".$id_usuario_session."'"); 
saludos
  #3 (permalink)  
Antiguo 13/04/2012, 05:40
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Comparar tablas y amigos

Hola bugger he comprobado si la sesion se mantiene en el index

Array ( [user] => Array ( [id] => 11 [username] => [email protected] [password] => 123456 [alias] => albertomartin [name] => Alberto [surname] => Martinez ) )

De acuerdo entonmces ahora tendria que poner un $id a la consulta no?El resto del codigo no tiene nada que ver con este

///amigos o no amigos///
$select_1 = mysql_query("SELECT id_user FROM friends WHERE estado = '1' AND id_user = '".$id."'");
//selecciono la columna ID de la tabla02
$select_2 = mysql_query("SELECT id_friend FROM friends WHERE estado = '1' = '".$id."'");
//busco las coincidencias
//numero que guardara las coincidencias
$num = 0;
//busco en todos los resultados de select_1
while($data = mysql_fetch_array($select_1)){
//busco en todos los resultados de select_2
while($data2 = mysql_fetch_array($select_2)){
if($data['id_user'] == $data2['id_friend']){
$num++;
}
}
}
if($num > 1){
echo "Existen ".$num." coincidencias";
}else{
echo "No existen coincidencias";
}

Última edición por kfh1992; 13/04/2012 a las 05:46
  #4 (permalink)  
Antiguo 13/04/2012, 05:55
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Comparar tablas y amigos

O abria que cambiar los dos select??
  #5 (permalink)  
Antiguo 13/04/2012, 06:16
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: Comparar tablas y amigos

las dos sql atacan a la misma tabla 'friends'? si es así, y solo quieres mostrar los resultados por usuario, podrías hacerlo de la siguiente manera:
Código PHP:
Ver original
  1. $select = mysql_query("SELECT count(*) as total_coincidencias FROM friends WHERE estado = '1' AND id_user '".$id."'");
  2. $data = mysql_fetch_array($select);
  3.  
  4. echo "coincidencias: ".$data['total_coincidencias'];

saludos
  #6 (permalink)  
Antiguo 13/04/2012, 07:26
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Comparar tablas y amigos

No entiendo esto..hago el login y me funciona esto

while ($row = mysql_fetch_assoc($query)){
$id = $row['id'];
$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];

}

$_SESSION['user'] = array(
'id' => $id,
'username' => $dbusername,
'password' => $dbpassword,
'alias' => $dbalias,
'name' => $dbname,
'surname' => $dbsurname);
echo "Identificador: $id<br>";
echo "Nombre: $dbname<br>";
echo "Apellidos: $dbsurname<br>";
echo "Alias: $dbalias<br>";
echo "Se ha identificado correctamente";
////Mostrar publicaciones de todos los usuarios

////
;
}}}}

Esto me funciona correctamente ... pues muy bien luego cuando voy al index (mantengo la sesion) no me carga ningún dato de lo anterior. :/ parece que se pierda y ademas pone que el id no está definido

Lo digo porque me pone id indefinido :/
$id = $_SESSION['user']['id'];
$select = mysql_query("SELECT web(*) as total_coincidencias FROM friends WHERE estado = '1' AND id_user '".$id."'");
$data = mysql_fetch_array($select);
echo "coincidencias: ".$data['total_coincidencias'];

...:/ gracias por las molestias :)

Última edición por kfh1992; 13/04/2012 a las 07:38
  #7 (permalink)  
Antiguo 16/04/2012, 05:31
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 17
Respuesta: Comparar tablas y amigos

Hola,
en tu sentencia tienes un error en id_user - te falta el simbolo '='
aparte cuando hagas mysql_query acabalo con un die(mysql_error());
es decir:

Código PHP:
$select mysql_query("SELECT web(*) as total_coincidencias FROM friends WHERE estado = '1' AND id_user = '".$id."'") or die(mysql_error()); 
asi sabrás si tienes algun error en la SQL.

Saludos

Etiquetas: mysql, tabla, tablas, usuarios
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:51.