Foros del Web » Programando para Internet » PHP »

base de datos como variable

Estas en el tema de base de datos como variable en el foro de PHP en Foros del Web. Acabo de registrarme y esta sera mi primer pregunta en el foro, espero explicarme claramente: Estoy creando un sitio en el que tengo que hacer ...
  #1 (permalink)  
Antiguo 20/02/2005, 03:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 0
base de datos como variable

Acabo de registrarme y esta sera mi primer pregunta en el foro, espero explicarme claramente:

Estoy creando un sitio en el que tengo que hacer respaldos de la base de datos periodicamente (cada 6 meses)

cuento con la Base de datos de la que se crearan las replicas (esta no contiene datos)

al utilizar el sistema por primera vez, o al inicio de cada periodo, el administrador crea una copia de la base de datos vacia y la nombra de acuerdo al periodo que desee (2005a, 2005b)

lo que necesito es, si alguien puede ayudarme, que antes de que se haga culquier cosa, se seleccione la base de datos a la que se quiere tener acceso...

supongo que se podria almacenar el nombre de la base de datos en una variable y utilizarla en el sistema mientras no se cambie de periodo (base de datos)

la conexion que utilizo es de la sig. manera:

db.php

<?php
define("HOST", "localhost");
define("USER", "usuario");
define("PASS", "contraseña");
define("DB", "base_de_datos"); //aqui es en donde deseo utilizar la variable
?>

este archivo db.php lo utiliza todo el sistema para conectarse..

Gracias a todos,
  #2 (permalink)  
Antiguo 20/02/2005, 03:42
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Antetodo Bienvenido!.
... Bueno, según lo que entendí... yo haria algo así:
Código PHP:
<?php
// con date tomo el año y mes del servidor
$annodate('Y');
$mesdate('n');
if(
$mes<6) { // si es antes de junio el periodo es a, si es junio ó posteriores el periodo es b
$periodo "a";
} else {
$periodo "b";
}
$base_de_datos=$anno.$periodo;
// haz un echo a $base_de_datos... te debe resultar algo tipo 2005a ó 2005b ¿es lo que buscas no?

define("HOST""localhost");
define("USER""usuario");
define("PASS""contraseña");
define("DB""$base_de_datos"); //aqui es en donde deseo utilizar la variable... donde la utilizas :-D
Ojalá te sirva... para más datos sobre la función date() consulta php.net.
Suerte! y haznos saber cómo te fue.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 20/02/2005, 04:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 0
buena idea, pero...esta es la cuestion:

creo que enrede un poco las cosas, lo que tengo es lo siguiete:

<?php
$host = "localhost";
$user = "root";
$pass = "triadpass";

$conn = mysql_pconnect($host, $user, $pass) or die("No pude conectarme");

echo "<B>Connectado</B><P>";

$db_list = mysql_list_dbs($conn); //listar las bases de datos diponibles
while ($row = mysql_fetch_object($db_list)) {
echo $row->Database . "<br>";
}
mysql_close($conn);

?>



suponiendo que ya tengo la lista de base de datos:

2005a //el nombre de la bd lo asigna el administrador de manera manual...
2005b
2006a
2006b


con este codigo listo las bases de datos que tengo en mi servidor, el usuario debe selecionar una de ellas y el sistema trabajara unicamente con la base de datos que el usuario eligio, mi duda es, como hago que en el script db.php

<?php
define("HOST", "localhost");
define("USER", "root");
define("PASS", "alguna");
define("DB", "$variable");
?>

se guarde el nombre de la base de datos que hayan elegido, para posteriormente utilizar el script de conexion en el sistema????


por cierto jam1138, creo que tambien me servira la respuesta eso hizo que se me ocurran otras cosas... gracias por el dato...

  #4 (permalink)  
Antiguo 20/02/2005, 04:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... me cambiaste el asunto... ahora entiendo esto:
Yo usuario... entro a tu página, un formulario? donde me muestras tus bases de datos disponibles... quizá para hacer consultas en éstas... selecciono en mi formulario y de ahí en adelante trabajo con esa BD...
tu solución serían las sesiones ... busca en el foro, se ha tratado mucho... lee de qué se trata y ve si te sirve... sino reemplanteame la cuestión .
Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 20/02/2005, 23:32
 
Fecha de Ingreso: febrero-2005
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 0
De acuerdo

Gracias jam1138 esta vez si me explique mejor...

de entrada el usuario selecciona la base de datos (todas tienen la misma estructura) y es sobre esa bd en la que estara trabajando en adelante...
aunque aun no se como restringir la lista que debe aparecer ya que no me gustaria listar la de Mysql por ejemplo

fue una modificacion de ultimo momento que necesito hacer aunque el sistema esta practicamente terminado

tomare muy en cuenta tu respuesta....

y si hay mas ideas u opiniones, pues seran de gran ayuda.
  #6 (permalink)  
Antiguo 21/02/2005, 00:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por tectuxtla
aunque aun no se como restringir la lista que debe aparecer ya que no me gustaria listar la de Mysql por ejemplo
... piensa en lo básico... te menciono dos soluciones sencillas:
1) Con PHP... simplemente creamos un condicional dónde solo imprimiremos lo que necesitemos... ó excluiremos lo que no necesitemos según convenga (similar pero no igual ) . Un ejemplo de ésto pordrìa ser como sigue dentro del clàsico bucle donde desplegamos los resultados:
Código PHP:
while($rowmysql_fetch_array($result)) {
if(
$row['columna']!="esto_no") { ...imprimimos todo lo demás... }
}
//simple.. podrías aplicarlo sin mayor problema 
2) ... creo lo más recomendable. Excluir de la consulta lo que no ocuparás
Esto es MySQL... por lo que el asunto está en la query a emplear. El siguiente es un ejemplo para recuperar todos los datos de un campo, menos los que contengan "esto_no":
Código PHP:
$query"SELECT campos FROM tabla WHERE campo <> 'esto_no'";
// <> significaria "diferente"... equivandria a el != de PHP 
... es básico. Espero te ayude. Por lo demás aviza cuendo tengas algo de sesiones... ve en las FAQ!!! que para eso están .

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 21/02/2005 a las 00:55
  #7 (permalink)  
Antiguo 21/02/2005, 01:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 0
jejeje, vaya que eres de gran ayuda jam1138 ....

aun me estoy familiarizando con algunas funciones de mysql, funciono a la perfeccion, a continuacion dejo el codigo por si alguien quisiera utilizarlo

Código PHP:
<?php 
$host 
"localhost";
$user "root";
$pass "triadpass";

$conn mysql_pconnect($host$user$pass) or die("No pude conectarme");

    echo 
"<B>Connectado</B><P>";

    
$db_list mysql_list_dbs($conn); //listar las bases de datos diponibles
    
while ($row mysql_fetch_object($db_list)) {
    if(
$row->Database !="mysql") {echo $row->Database "<br>";}
    }
    
mysql_close($conn);
?>
seguire investigando
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 14:05.