Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/04/2016, 07:34
Avatar de sarole
sarole
 
Fecha de Ingreso: diciembre-2013
Ubicación: Madrid
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Consulta MYSQL con JOIN complejo con varias tablas

Buenas tardes!

Es la primera vez que os escribo, estoy empezando con PHP y MySQL y sé lo básico, pero me las voy apañando con lo que encuentro en la documentación y en las dudas resueltas del foro, solo que no encuentro solución a mi problema ahora.

Tengo una aplicación sencilla para consultar las estadísticas del programa PHPList que hace envíos PHP de emails masivos.

He conseguido todo lo que quería, pero me he atascado en los detalles de los clicks.

El caso es que un mensaje X recibe N clicks en el enlace que se manda, y recupero una tabla donde aparecen solamente los usuarios que hacen click. El caso es que necesito relacionar al usuario con el nombre, teléfono y código de cliente, que son datos que están en otra tabla y ya me he liado.

Tengo 3 tablas distintas de las que recuperar los datos.

En la tabla phplist_linktrack_uml_click tengo almacenado el messageid y userid de los usuarios que hacen click y lo he relacionado con la tabla phplist_user_user donde tengo de nuevo la id de usuario y además el email. Estos datos se muestran bien.

El problema es que el resto de los datos estan en phplist_user_user_attribute guardados de la siguiente forma:

attributeid userid value
0 1 Fulano
1 1 666666666
2 1 Cliente 10


¿Qué debería añadir al código para que me seleccione en cada línea el nombre, el teléfono y el código de cliente?

Os inserto el código que tengo hasta ahora:

Código:
<?php
$servername = "localhost";
$username = "********";
$password = "********";
$dbname = "phplist";

// Conexion a la base de datos
$conn = new mysqli($servername, $username, $password, $dbname);
// Comprobar la conexion
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

setlocale(LC_TIME, 'es_ES');

$val = $_REQUEST['valor'];

$sql = "SELECT phplist_linktrack_uml_click.messageid, phplist_user_user.id, phplist_user_user.email  
FROM phplist_linktrack_uml_click 
INNER JOIN phplist_user_user 
ON phplist_linktrack_uml_click.userid=phplist_user_user.id 
WHERE messageid = '$val'";

$result = $conn->query($sql);

echo "<link rel=\"stylesheet\" href=\"1.css\" type=\"text/css\" >"; 

if ($result->num_rows > 0) {
    echo "<table class=normal>
		<tr>
		<th>Usuario</th>
		<th>Email</th>
		<th>Nombre</th>
		<th>Telefono</th>
		<th>Clase</th>
		</tr>";
    // obtener los datos de cada row
    while($row = $result->fetch_assoc()) {
        echo "<tr>
			<td class=nombre>".$row["id"]."</td>
			<td class=email>".$row["email"]."</td>
			<td class=nombre></td>
			<td class=tlf></td>
			<td class=codigo></td>
		</tr>";
    }
    echo "</table>";
} else {
    echo "0 results";
}
$conn->close();
?>
Muchas gracias de antemano, el foro siempre me ayuda mucho a aprender.