Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ordenar tabla en funcion de otras tabla

Estas en el tema de Ordenar tabla en funcion de otras tabla en el foro de Mysql en Foros del Web. Muy buenas. Pues mi problema es el siguiente. Tengo una tabla en la que estan el nombre de los usuarios junto con los permisos que ...
  #1 (permalink)  
Antiguo 06/05/2008, 03:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Sonrisa Ordenar tabla en funcion de otras tabla

Muy buenas. Pues mi problema es el siguiente. Tengo una tabla en la que estan el nombre de los usuarios junto con los permisos que tiene cada uno. Una vez que se crea un nuevo usuario se genera automaticamente una tabla que se llama con el usuario y que contiene los datos de un formulario, entre ellos el nombre del pais desde el que se genera el formulario.

Consigo mostrar todos los datos de todos los usuarios en pantalla pero ahora necesito organizar todos esos datos ordenandoloso por paises...es un poco lio...

Esto es lo k llevo y...no se como ordenarlo.

$user_query="select * from users";
$user_result= mysql_query($user_query, $conx) or die('Error making query');
$user_session=$_SESSION['username'];

while($user_row=mysql_fetch_array($user_result))
{

$user_name=$user_row["user_name"];

$table=$user_name;
$personal_query="select * from $table ORDER By country ";
$personal_result= mysql_query($personal_query) or die(mysql_error());
if($table != admin){
echo " <br><br><br><br>";
}
/* Desplegamos cada uno de los registros dentro de una tabla */
echo "<table border=1 align=center bgcolor=#CE0000 cellpadding=4 cellspacing style=color:white>";



/*todos los registros */
while($row=mysql_fetch_array($personal_result))
{
if($table == $user_session)
{
echo "<tr>

<td width=85% height=20 colspan=3>
<p align=center><font face=Arial><font size=4 color=white><b>Request by $row[country]</b></font></font></p>
</td>
</tr>......

continuaria la tabla, pero no es muy relevante creo....

Muchas Gracias!
  #2 (permalink)  
Antiguo 07/05/2008, 01:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Ordenar tabla en funcion de otras tabla

Cada usuario tiene una tabla en la BBDD??!!!???

Quim
  #3 (permalink)  
Antiguo 07/05/2008, 03:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ordenar tabla en funcion de otras tabla

sip, cada usuario tiene una tabla, por? deberia redisenar la base de datos? Es que soy un poco inexperto en MySql...
  #4 (permalink)  
Antiguo 07/05/2008, 06:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: Ordenar tabla en funcion de otras tabla

Sip, supongo que estamos hablando de los mismos conceptos, lo que se hace normalmente es definir una tabla "usuarios"

usuarios
idUsusario
nombre
direccion
country
...
username
password


o los campos que necesites y luego cada usuario individual se guarda en un registro de esta tabla, y luego claro el problema que planteas ya no tendria sentido

si quieres listar todos los ususarios

$personal_query="select * from usuarios ORDER By country ";

o si quieres listar un usuario concreto (en este caso el de la session)

$personal_query="select * from usuarios where username='$_SESSION['username']'";

si quieres dar un tratamiento especial al usuario de la session pero dentro de la lista general de usuarios usas el primer ejemplo y antes de mostrar cada registro compruebas si es el de la session con un if y lo muestras con el tratamiento especial...

Deberias buscar documentacion sobre normalizacion de bases de datos relacionales. Se trata de descomponer la información en unidades distintas pero todas las del mismo tipo se guardan (una sola vez) en una tabla que normalmente toma un nombre representativo del tipo de datos que guarda (vaya resumen me ha salido)...

Por ejemplo en la tabla usuarios que te proponia mas arriba el campo country podria contener un id_country en vez de el nombre del pais y luego deberias crear otra tabla "countrys" con dos campos id_country y nombre_country con todos los paises del mundo y relacionar las dos tablas, de esta manera reducimos el tamaño de la bbdd sin reducir la información que contiene, puesto que no guardamos muchas veces "REPUBLICA DE LOS ESTADOS UNIDOS DE EUROPA DEL SUR OESTE" sino que guardamos "1" que podria ser su identificador para cada usuario de ese pais, que obviamente ocupa mucha menos memoria.


Quim
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 10:48.