Вы находитесь на странице: 1из 12

Cmo importar y exportar bases de datos desde phpMyAdmin

Desde el phpMyAdmin podemos gestionar nuestras bases de datos, podemos aadir,


eliminar o crear nuevo contenido.
Dos de las operaciones ms comunes al utilizar el phpMyAdmin es importar y exportar
bases de datos.

1.- Exportar una base de datos


Usamos esta opcin cuando queremos migrar un alojamiento y tenemos que importar
nuestra base de datos en el nuevo alojamiento o simplemente para guardarnos una copia
de seguridad.
Primero accedemos al phpMyAdmin con los datos de acceso.

Una vez dentro del phpMyAdmin, seleccionamos la base de datos que queremos
exportar a un archivo.

Al seleccionar la base de datos, clicamos en el enlace "Exportar".

Nos aparece una nueva ventana.

Podemos realizar la exportacin de modo "rpido" haciendo clic en "Continuar".

Podemos seleccionar "Personalizar" si no deseamos exportar todas las tablas, si


queremos cambiar "Juego de caracteres del archivo" UTF-8, o seleccionar compresin,
si queremos que el archivo que se genere ocupe menos

espacio.

Una vez recibido el archivo ya tenemos la copia de la base de datos en nuestro disco,
lista para Importar.

2.-Importar una base de datos


Para importar una base de datos necesitamos, primero, el archivo con los datos generado
previamente. Si estamos migrando una base de datos de otro alojamiento a CDmon,
debemos tener la copia de la base de datos en un archivo con extensin .sql, .zip, .tar.gz
o .tgz en el disco duro de nuestro ordenador.
Si la base de datos a importar pesa ms de 30 MB tenemos que realizar la importacin a
travs del Panel de control de CDmon. Si la base de datos pesa menos de 30 MB
podemos realizarlo desde el mismo phpMyAdmin.

Primero, escogemos la base de datos a la que queremos importar. Podemos crearla a


travs del Panel de control de CDmon.
Una vez dentro del phpmyadmin, seleccionamos la base de datos que hemos creado a la
cual deseamos importar nuestro

archivo.

Seleccionada la base de datos hacemos clic en el enlace


"Importar".

Nos muestra la ventana donde nos permite examinar en nuestro disco duro el archivo de
la base de datos. Clicamos en "Examinar", seleccionamos el archivo y aceptamos.

En la seleccin de "Juego de caracteres" tenemos que seleccionar la misma opcin que


escogimos cuando exportamos la base de datos. Habitualmente se utiliza UTF-8.

Hecho esto slo nos queda hacer clic en "Continuar" y esperar a que se cargue el
archivo. Tardar ms o menos, dependiendo del tamao del fichero.

Pasos a seguir para la creacin de un buscador con PHP y MySQL.


Supongo al lector familiarizado con la programacin en php y la administracin bsica
de Mysql.
Como punto de partida, la informacin a buscar la tenemos que tener almacenada en
una tabla de nuestra base de datos. Pongamos como ejemplo una tabla con artculos
tcnicos que llamaremos ARTICULOS. Esta tabla ARTICULOS tendr como mnimo
dos campos llamados TITULO y DESARROLLO, que almacenarn el ttulo del artculo
y su contenido respectivamente.

Los tipos de los campos a buscar debern ser CHAR, VARCHAR o TEXT con sus
variantes.
Ahora disearemos una pgina con un formulario y una caja de texto para escribir la
cadena de consulta "busqueda" y llamar al script de bsqueda "buscar.php". Ejemplo:
<FORM METHOD=POST ACTION="buscar.php">
Buscar: <INPUT TYPE="text" NAME="busqueda">
</FORM>
En el fichero buscar.php es donde est el click de la cuestin.
Hay que hacer la consulta que busque las palabras y devuelva como resultado los
registros coincidentes. Hasta aqu parece fcil y podramos resolverlo as:
SELECT * FROM ARTICULOS WHERE DESARROLLO LIKE '%$busqueda%' OR
TITULO LIKE '%$busqueda%'
Pues esta consulta nos mostrar todos los artculos que en su titulo o en su contenido
aparezca la frase de bsqueda tal y como nosotros la introducimos. Esto es muy
limitado ya que un cambio en el orden de las palabras o un artculo de separacin dar
al traste con nuestra bsqueda no mostrando los resultados deseados.
Si bien podramos depurar y mejorar la sintaxis de nuestra bsqueda utilizando el
operador LIKE las bsquedas resultaran muy lentas y no tendran el resultado esperado.
La solucin mas eficiente es utilizar los ndices FULLTEXT especficamente indicados
para estos menesteres. Pues bien esto implica ir a nuestra base de datos, y crear un
indice FULLTEXT con todos los campos que deseamos incluir en nuestra busqueda,
que en nuestro caso son TITULO y DESARROLLO. Para ello basta con el
phpmyadmin o bien escribir la instruccin directamente:
ALTER TABLE ARTICULOS ADD FULLTEXT(TITULO, DESARROLLO);

Una vez creado el ndice la instruccin SQL para buscar ser:


SELECT * FROM ARTICULOS WHERE MATCH(TITULO, DESARROLLO)
AGAINST ('$busqueda')
Esta lnea utiliza la funcin MATCH ... AGAINST ... que encuentra el texto buscado,
usando consultas en lenguaje natural parecido a como lo hacen los motores de
bsqueda. Adems, se calcula internamente una puntuacin en funcin de como
aparecen los trminos buscados dentro de nuestro artculo.
Perfeccionando la bsqueda:
SELECT * , MATCH (TITULO,DESARROLLO) AGAINST ('$busqueda') AS
puntuacion FROM ARTICULOS WHERE MATCH (TITULO, DESARROLLO)
AGAINST ('$busqueda') ORDER BY puntuacion DESC LIMIT 50
Esta lnea devuelve los 50 primeros resultados encontrados ordenados de mas a menos
puntuacin. El valor de la puntuacion es un nmero decimal comprendido entre 0 y 1
por cada ocurrencia del patrn de bsqueda, que se ir sumando si ese patrn es
encontrado en varias ocasiones. De cualquier forma esta puntuacin es un algoritmo
interno de la base de datos.
Algunos problemas. Las bsquedas realizadas con MATCH ...AGAINST en ocasiones
fallan cuando el trmino a buscar contiene una sola palabra. Por el contrario son unas
bsquedas rapidsimas que producen mejores resultados que otros mtodos mas
rudimentarios como el LIKE cuando se trata de varias palabras o frases.
La solucin que le he dado a ese problema de las bsquedas con MATCH...AGAINST
has sido chequear el nmero de palabras a buscar, utilizando una bsqueda simple con
LIKE en el caso de una sola palabra, y el mtodo MATCH...AGAINST en el caso de
varias. Ejemplo del fichero buscar.php
<?php
//cadena de conexion
mysql_connect("host","usuario","password");
//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
if ($busqueda<>''){
//CUENTA EL NUMERO DE PALABRAS
$trozos=explode(" ",$busqueda);
$numero=count($trozos);
if ($numero==1) {

//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA


INSTRUCION CON LIKE
$cadbusca="SELECT REFERENCIA, TITULO FROM ARTICULOS WHERE
VISIBLE =1 AND DESARROLLO LIKE '%$busqueda%' OR TITULO LIKE '%
$busqueda%' LIMIT 50";
} elseif ($numero>1) {
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA
AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
$cadbusca="SELECT REFERENCIA, TITULO , MATCH ( TITULO,
DESARROLLO ) AGAINST ( '$busqueda' ) AS Score FROM ARTICULOS WHERE
MATCH ( TITULO, DESARROLLO ) AGAINST ( '$busqueda' ) ORDER BY Score
DESC LIMIT 50";
}
$result=mysql("teleformacion", $cadbusca);
While($row=mysql_fetch_object($result))
{
//Mostramos los titulos de los articulos o lo que deseemos...
$referencia=$row->REFERENCIA;
$titulo=$row->TITULO;
echo $referencia." - ".$titulo."<br>";;
}
?>

Buscar datos
Criterios de bsqueda
Muchas veces no nos interesa mostrar toda la tabla, sino algn dato especfico de la
misma. Pero para buscar uno o varios datos, debemos saber otros, por ejemplo, en la
tabla "agenda" vista en pginas anteriores, para buscar el telfono o el email de alguien,
debemos saber su nombre.
El criterio de bsqueda es el dato que tenemos para poder buscar los dems. es decir
aqu el criterio de bsqueda ser el nombre, y los datos buscados sern el telfono y el
email.

Busqueda exacta
Le llamamos as a la bsqueda en la que hay que escribir el dato que conocemos (el
nombre en este ejemplo) de forma completa. para ello seleccionamos toda la tabla, y
aplicamos luego la sentencia where, para buscar el registro que coincida con la
condicin que indiquemos.
$sql="select * from agenda where nombre='Vicente Gracia'"
la sentencia where se usa de la misma manera que vimos para modificar datos. es decir
indicamos el nombre del campo, y lo igualamos al valor que debe tener. Es aqu donde
establecemos el criterio de bsqueda,
El resto de cdigo php es el mismo que hemos usado para mostrar la tabla completa. As
el siguiente cdigo nos mostrar adems del nombre indicado, el telfono y el email:
$con=mysql_connect("localhost","root","");
mysql_select_db("miagenda",$con);
$sql="select * from agenda where nombre='Vicente Gracia'";
$datos=mysql_query($sql,$con);
while ($row=mysql_fetch_array($datos)) {
$nombre=$row['nombre'];
$telefono=$row['telefono'];
$email=$row['email'];
echo "$nombre, $telefono, $email. <br/>";
}
mysql_close($con);
?>

Aunque lo normal en este caso es que haya un slo registro coincidente, seguimos
utilizando el bucle while por si hubiera ms de uno, en ese caso se nos mostraran todos
los registros que cumplieran las condiciones indicadas.
El resultado del ejemplo anterior, nos dar el siguiente resultado:
Vicente Gracia, 685138554, vicentegracia@msn.com.

Esto es un simple ejemplo para indicar cmo buscar datos en una base, pero como
puedes ver esto tal como est hecho aqu, no resulta muy eficaz, por lo que lo normal es,
mediante un formulario, recoger en una variable el dato que nos da el usuario (criterio
de bsqueda), y buscar esa variable en la base de datos.
Es as como podemos crear un buscador. El usuario introduce sus datos de bsqueda,
nosotros los buscamos en la base y le devolvemos lo que hemos encontrado. El resto es
cuestin de organizacin y presentacin de la pgina.

Modificar registros de nuestra base de datos


Lo primero, es lo primero, para modificar hay que tener permiso para ello en el servidor
de BD, el resto nos viene de corrido. Primero seleccionamos el registro que deseamos
modificar, y luego, mandamos una consulta con la modificaciones, o ambas cosas a la
vez. Suponemos que las modificaciones las recogemos de un formulario como el de la
leccin anterior .
Modificar registros opcion A
<html>
<body>
<?php
if (isset($id)){
// process form
$link = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "SELECT * FROM agenda WHERE id = $id"
$result = mysql_query($sql);
$sql = "UPDATE agenda SET nombre='$nombre',
direccion='$direccion',".
"telefono='$telefono', email='$email'";
$result = mysql_query($sql);
}else{
echo "Debe especificar un 'id'.\n";
}
</body>
</html>

O bien,
Modificar registros opcion B
<html>
<body>
<?php
if (isset($id)){
// process form
$link = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "UPDATE agenda SET nombre='$nombre',
direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id=$id";
$result = mysql_query($sql);
}else{
echo "Debe especificar un 'id'.\n";
}
</body>
</html>

Borrar registros de nuestra base de datos


El proceso de borrar un registro es identico al de modificar, solo que en vez de utilizar
UPDATE utilizamos DELETE en la sentenica SQL. Por tanto el script quedara como
sigue.
Borrado registros de BD
<html>
<body>
<?php
if (isset($id)){
// process form
$link = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$sql = "DELETE agenda WHERE id=$id")
$result = mysql_query($sql);
}else{
echo "Debe especificar un 'id'.\n";
}
</body>
</html>

Вам также может понравиться