Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 06-may-2008, 03:57   #1 (permalink)
SackDaGo ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
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!
SackDaGo está desconectado   Responder Citando
Antiguo 07-may-2008, 01:15   #2 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 399
Re: Ordenar tabla en funcion de otras tabla

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

Quim
quimfv está desconectado   Responder Citando
Antiguo 07-may-2008, 03:20   #3 (permalink)
SackDaGo ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
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...
SackDaGo está desconectado   Responder Citando
Antiguo 07-may-2008, 06:14   #4 (permalink)
quimfv tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 399
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
quimfv está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:45.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93