he entendido y ya e cnsultado varios temas parecidos a mi problema pero no he encontrado aun la solución, espero me puedan ayudar de favor.
Bueno pues resulta que tengo el siguiente arreglo con informacion precargada:
Código:
$critics = array( 'Lisa Rose' => array( 'Lady in the Water' => 2.5, 'Snakes on a Plane' => 3.5, 'Just My Luck' => 3.0, 'Superman Returns' => 3.5, 'You, Me and Dupree' => 2.5, 'The Night Listener' => 3.0, ), 'Gene Seymour' => array( 'Lady in the Water' => 3.0, 'Snakes on a Plane' => 3.5, 'Just My Luck' => 1.5, 'Superman Returns' => 5.0, 'The Night Listener' => 3.0, 'You, Me and Dupree' => 3.5, ), 'Michael Phillips' => array( 'Lady in the Water' => 2.5, 'Snakes on a Plane' => 3.0, 'Superman Returns' => 3.5, 'The Night Listener' => 4.0, ), 'Claudia Puig' => array( 'Snakes on a Plane' => 3.5, 'Just My Luck' => 3.0, 'The Night Listener' => 4.5, 'Superman Returns' => 4.0, 'You, Me and Dupree' => 2.5, ), 'Mick LaSalle' => array( 'Lady in the Water' => 3.0, 'Snakes on a Plane' => 4.0, 'Just My Luck' => 2.0, 'Superman Returns' => 3.0, 'The Night Listener' => 3.0, 'You, Me and Dupree' => 2.0, ), 'Jack Matthews' => array( 'Lady in the Water' => 3.0, 'Snakes on a Plane' => 4.0, 'The Night Listener' => 3.0, 'Superman Returns' => 5.0, 'You, Me and Dupree' => 3.5, ), 'Toby' => array( 'Snakes on a Plane' => 4.5, 'You, Me and Dupree' => 1.0, 'Superman Returns' => 4.0, ), );
El cual funciona pero necesito que los datos no esten precargados o sean predeterminados, por lo cual tengo que formarlo en base a consultas,
las cuales ya las he estructurado y funcionan perfectamente en el gestor de base de datos:
Como se puede interpretar
$critics es el arreglo general
el cual tiene unos nombres principales que han evaluado unas peliculas
usuario_id Nombre_Usuario
1..............Lisa Rose
2.............Gene Seymour
3.............Michael Phillips
4.............Claudia Puig
5.............Mick LaSalle
6.............Jack Matthews
7.............Toby
Los cuales se le asignan las peliculas que han calificado
Como se puede apreciar en el ultimo que es más pequeño:
$critics = array(
'Toby' => array(
'Snakes on a Plane' => 4.5,
'You, Me and Dupree' => 1.0,
'Superman Returns' => 4.0);
El detalle es que decidi sacar primero los nombres de los usuarios con este query
puesto que el nombre de usuario lo ocupo solo una vez (asi lo analice yo no se si tenga un error ahi)
Código:
SELECT DISTINCT a.Nombre_Usuario,a.id_usuario FROM usuarios a,peliculas b,calificaciones c WHERE a.id_usuario=c.id_usuario AND b.id_pelicula=c.id_producto ORDER BY id_usuario
Despúes sacar con otro query las peliculas y calificaciones
Código:
SELECT a.id_usuario,b.pelicula_desc,c.calificacion FROM usuarios a,peliculas b,calificaciones c WHERE a.id_usuario=c.id_usuario AND b.id_pelicula=c.id_producto ORDER BY id_usuario
Pero pues hasta ahi tengo no se como puedo asignar los resultados para poder formar el array como lo muestro anteriormente :)
He visto varios ejemplos que lo hacen con un foreach o con un while pero nada mas no me sale :S
Yo lo hice así pero no tuve exito:
Código:
Espero que me puedan ayudar y corregirme si estoy analizando mal el problemaforeach($result2 as $usuario2) { $critics=array($usuario2["Nombre_Usuario"] =>array($usuario2["producto_desc"] =>$usuario2["calificacion"])); }
Gracias y saludos.