Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/09/2011, 06:19
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: salvadme la vida porfavor

Buenas,

Si lo quieres montar tal y como lo planteas, necesitas una base de datos para los datos de tu aplicación, que tiene que tener al menos una tabla:
- Usuario: con campos user, pass y bd.

En esta tabla almacenas el nombre de la base de datos que se asigna a cada usuario cuando accede a la aplicación.

Además, necesitas crear una nueva base de datos para cada usuario. Cuando la crees, tienes que actualizar el campo bd de la tabla Usuario de tu base de datos de aplicaicón. Una vez montado este sistema, cada vez que un usuario quiera acceder a tu aplicación tienes que hacer lo siguiente:
1) Conectar a tu base de datos de aplicación. Con mysql_select_db seleccionas dentro de tu host la que sea, suponiendo que la bd es Aplicacion, sería así:
Código PHP:
Ver original
  1. mysql_connect("host", "user", "pass");
  2. mysql_select_db("Aplicacion");
2) Comprobar dentro de esta base de datos si el usuario existe y, en caso de que exista, sacar a una variable el valor de su campo "bd". Algo así.
Código PHP:
Ver original
  1. $rs = mysql_query("SELECT * FROM Usuario WHERE (user = '$user' AND pass = '$pass');") or die (mysql_error());
  2. if ($row = mysql_fetch_array($rs)) {
  3.    $db = $row['db'];
  4. } else {
  5.    echo "No existe el usuario";
  6. }
3) Una vez extraído el nombre de la base de datos que le corresponde al usuario, vuelves a usar la función para seleccionarla y dejarla en adelante como base de datos a la que referirse:
Código PHP:
Ver original 

Adicionalmente, tendrás que guardar $db a la variable de $_SESSION para poder hacer el select_db cada vez que vayas a acceder a la base de datos, ya que si tienes usuarios simultáneos puedes tener problemas.

Un saludo.

PD: Sigo insistiendo en que montar este pitote me parece una burrada, ya que puedes meter todo en la misma base de datos y restringir los datos por usuario. Por no querer aprender de bases de datos vas a liar en demasía el código PHP y vas a cargar el servidor con tanto cambio de base de datos.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?