Foros del Web » Programando para Internet » PHP »

Problema con consulta

Estas en el tema de Problema con consulta en el foro de PHP en Foros del Web. Hola amigos, Estoy haciendo un pequeño script para la web de un amigo para conocer que usuarios se conectan al perfil de sus clientes. El ...
  #1 (permalink)  
Antiguo 29/07/2009, 13:01
Avatar de jlmoreno31  
Fecha de Ingreso: mayo-2009
Ubicación: Barcelona
Mensajes: 174
Antigüedad: 14 años, 11 meses
Puntos: 2
Problema con consulta

Hola amigos,

Estoy haciendo un pequeño script para la web de un amigo para conocer que usuarios se conectan al perfil de sus clientes. El script funciona a la perfección, pero a la hora de hacer la consulta (perfil privado del cliente) no funciona, porque seguro que me estoy liando. Llevo toda la tarde pensando como hacerlo, pero en realidad no he podido. Os explico;

Tablas: Visitas, usuarios, clientes

Visitas: id_visita, id_usuario,id_cliente,fecha
usuarios:id_usuario,Nombre,Apellidos, eetc...
clientes: id_cliente,Etc...

Cuando listo la consulta al cliente en su perfil le hago lo siguiente:
$id=$_GET['id_cliente'];
$result=mysql_query("select * from visitas where id_cliente='$id'");

Pero claro de este modo solo puedo seleccionar id_visita,id_usuario,id_cliente y fecha, pero lo que quiero lograr imprimir la asociación de la BD de id_usuario con usuarios.Nombre, usuarios.Apellidos, etc...

He probado hacerlo así pero tampoco funciona:

$result=mysql_query("select visitas.id_visita,visitas.id_usuario,visitas.id_cl iente,visitas.fecha,usuarios.id_usuario,usuarios.N ombre,usuarios.Apellidos from visitas,usuarios where id_cliente='$id'");

Pero no sale ningún registro. Alguna ayudilla? :)

Gracias de antemano.
  #2 (permalink)  
Antiguo 29/07/2009, 13:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 210
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta

No entendí mucho lo que querés sacar como resultado, pero seguramente necesites hacer un JOIN en la consulta. Por ej:

SELECT a.col1, a.col2, a.col3, b.col1, b.col2, b.col3
FROM tabla1 AS a
LEFT JOIN tabla2 AS b
WHERE a.col1 = b.col1;

Hay distintas formas de hacer el JOIN, en mi caso use LEFT como verás, pero hay otras como RIGHT JOIN, NATURAL JOIN, etc. Eso tenes que leerlo vos mismo asi sabras que es lo que mas te conviene, buscalo en google o anda a manual de mysql.
La condición que le puse por la cual hacer el JOIN (o sea unir las tablas) es: WHERE a.col1 = b.col1
El "AS a", y "AS b" es opcional, es para no tener q repetir los nombres de las tablas todo el tiempo.

Saludos

pd: es tema de MySQL esto, no de PHP
  #3 (permalink)  
Antiguo 29/07/2009, 13:51
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Problema con consulta

Hola.. te coloco este ejemplo para que te puedas Guiar mejor. todo esta bien lo que sucede es que cuando haces la consulta los datos aun estan en la memoria temporal de MySQL y necesitas de PHP para recojer esos datos de dicha memoria para ello debes hacer lo siguiente.
Código PHP:
 <?php  $host"localhost"$usuario "usuariodb"$clave_usuario "clave_usuario";  $db "basedatos";  $conexion mysql_connect($host,$usuario,$clave);  $db mysql_select_db($db); $query"TU SQL AQUI";     while($row mysql_fetch_array($query)){ echo $row[0];    } // para ver como esta todo el vector o array()  usa print_r($row);  ?>
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #4 (permalink)  
Antiguo 29/07/2009, 14:18
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Problema con consulta

Cordial saludo,

Compañero a grosso modo sería algo así:

Código PHP:

$ssql 
"select u.id_usuario,u.nombre,u.apellidos,c.id_cliente,c.nombre,c.apellidos,v.fecha from usuarios u,clientes c,visitas v where v.id_cliente='$id' and c.id_cliente='$id'  ";

$result mysql_query($ssql);

while (
$row=mysql_fetch_array($rs)){

//Muestras lo que desees


El conflicto prodría presentarse al presentar la info porque por ejemplo, el campo nombre en usuarios también es nombre en clientes. Te recomiendo para que no tengás problemas en tu tablas pongas los campos mas o menos así:
usuario: nombre_usu,apellidos_usu, etc.
cliente: nombre_cli,apellidos_cli,etc.
Es decir que diferencies por algún detalle a que tabla pertenece cada campo, porque si tienes nombre podría ser de cliente o de usuario.

Saludos.

PD: Si alguna cosa me avisas.
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:48.