elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Informática
| |-+  Tutoriales - Documentación (Moderadores: r32, ehn@)
| | |-+  Tutorial, uso de php con las bases de datos...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tutorial, uso de php con las bases de datos...  (Leído 7,049 veces)
programatrix


Desconectado Desconectado

Mensajes: 3.287


Ver Perfil WWW
Tutorial, uso de php con las bases de datos...
« en: 4 Febrero 2006, 13:58 pm »

Bueno, pues estaba un poquito aburrido aqui y me he decidido a poner un tutorial de como escribir datos dentro de una bd con php, leerlos, borrar tablas etc...
Lo primero, aunque esto viene ya preparado en los hoting hay que saber 4 datos basicos:
Citar
Host: Normalmente es localhost es el servidor al que nos conectamos.
Usuario: El nombre de usuario para acceder a la bd.
Password: La contraseña de ese usuario.
BD Es la base de dato donde se encuentran los datos adonde queremos acceder. En los hosting normalmente un usuario tiene acceso a una sola bd.
Una vez puestos estos datos vemos si va bien las conexiones:
La orden mysql_connect, permite conectarse a un servidor de bases de datos y logearse.
La variable $co, marca que con esa variable de conexion vamos a enviar instrucciones y demas.
Luego con la instruccion mysql_select_db seleccionamos la bd a partir de abernos conectado con la variable $co.
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
?>
La instruccion or die, permite en caso de fallo de la sentencia mostrar un error, no todas las sentencias pueden usar or die. Me acuerdo que puse un or die en un include, me volvi loco  ;D.
La filosofia de una tabla en la bd es la siguiente.
Tenemos por ejemplo una tabla llamada estadisticas, y con los campos equipo|goles|posicion
Y se podria representar asi:
Citar
Tabla virtual:
Equipo    |    Goles       |      Posicion
Real.M          20                      1
Barsa            10                     3
Atletic            15                     2

Ahora estan las ordenes en mysql para coger esos datos. Tienen la siguiente sintaxis.
Citar
Seleccioname dato delatabla tabla donde undatodeesatabla = 'datodelusuario'
Esto es como sería asi hablado, para que se entienda pero la sentencia como la escribimos es:
Código:
SELECT dato FROM tabla WHERE dato='datodelusuario'
La sentencia WHERE es opcional.
Para enviar estas ordenes se usa:
mysql_query, esta funcion manda una orden a una bd, en base a  una conexion. La repuesta se guarda en una variable, que se transforma en un array, un ejemplo de como podemos nosotros coger un dato de la bd, un dato sin tener en cuenta de algo que el usuario haya seleccionado.
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$dato = mysql_query("SELECT Posicion FROM estadisticas",$co);
if(mysql_num_rows($dato)){
//Primero se comprueva si el dato existe, de existir le sacamos
$dato = mysql_fetch_array($dato); //Esta funcion nos permite sacar el dato, en forma de array, dato[0] muestra el primero que haya encontrado en la bd, esto es solo util si hay solo un dato
$dato[0] = htmlspecialchars($dato[0]); //Lo vamos a mostrar y por seguridad lo limpiamos, no vaya a ser que haya una vulnerabiliad XSS.
$dato = $dato[0]; //pasamos la variable dato[0] a otra que es un array, yo lo hago para que se mas facil el trabajo, vosotros podeis hacer lo que querais.
echo 'El dato sacado es '.$dato;
}else{
echo 'No se puedo sacar el dato de la bd';
}
?>                   
Esto nos permite sacar un dato, la sentencia de antes se usa normalmente cuando hay que sacar muchos datos.
Citar
SELECT * FROM tabla
Cuando queremos sacar solo uno, que por ejemplo nos muestre, cual equipo esta en la 3º posicion, usamos esto, con la instruccion WHERE:
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$dato = mysql_query("SELECT Equipo FROM estadistica WHERE posicion='3'",$co);
if(mysql_num_rows($dato)){
//Primero se comprueva si el dato existe, de existir le sacamos
$dato = mysql_fetch_array($dato); //Esta funcion nos permite sacar el dato, en forma de array, dato[0] muestra el primero que haya encontrado en la bd, esto es solo util si hay solo un dato
$dato[0] = htmlspecialchars($dato[0]); //Lo vamos a mostrar y por seguridad lo limpiamos, no vaya a ser que haya una vulnerabiliad XSS.
$dato = $dato[0]; //pasamos la variable dato[0] a otra que es un array, yo lo hago para que se mas facil el trabajo, vosotros podeis hacer lo que querais.
echo 'El tercer equipo es: '.$dato;
}else{
echo 'No se puedo sacar el dato de la bd, posiblemente no existe';
}
?>
Ahora si nosotros queremos sacar los datos de la bd, todos pero sin ningun orden, podemos usar:
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$lista = mysql_query("SELECT * FROM estadisticas",$co); //El * sirve para acceder a todo tipo de datos dentro de esa tabla
while ($listando = mysql_fetch_array($lista)) {
echo 'Equipo: '.$listando["Equipo"].', '.'Goles: '.$listando["Goles"].', '.'Posicion: '.$listando["Posicion"];
}
?>
Aunque si ademas, quieres que los datos te salgan ordenados, puedes:
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$lista = mysql_query("SELECT * FROM estadisticas ORDER BY 'Posicion' DESC",$co); //El * sirve para acceder a todo tipo de datos dentro de esa tabla, ahora estan los datos ordenados
while ($listando = mysql_fetch_array($lista)) {
echo 'Equipo: '.$listando["Equipo"].', '.'Goles: '.$listando["Goles"].', '.'Posicion: '.$listando["Posicion"];
}
?>
Se puede hacer lo mimo, pero en vez de poner DESC puedes poner ASC.
Ahora, si quieres grabar datos en una base de datos, se puede hacer:
Código:
<?php
//Estos datos son enviamos por un formulario, damos poor hecho que sabe hacer formularios
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$equipo = $_POST["equipo"];
$goles = $_POST["goles"];
$posicion = $_POST["posicion"];
$guardarficha = mysql_query("INSERT INTO N_noticias (Equipo,Goles,Posicion) VALUES ('$equipo','$goles',$posicion')",$co) or die (mysql_error());
Echo 'Datos agregados con exito';
?>
Siempre hay que tener cuidado con estas ordenes que van a la bd, entre otras cosas porque, con pueden producirse mysql inyection.
Ahora vamos a crear una tabla, la tabla con la que hemos hecho todos estos ejemplos:
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$creartabla = mysql_query("CREATE TABLE estadisticas(
Equipo TEXT NOT NULL,
Goles INT(2) NOT NULL,
Posicion INT(2) NOT NULL
);")or die(mysql_error());
echo 'Tabal creada:';
?>
Tambien, podemos cambiar un dato por otro:
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$goles = $_POST["goles"];
$cambiar = mysql_query("Update estadisticas Set  Goles='$goles' Where Equipo='Real.M'",$co) or die (mensaje(mysql_error()));
echo 'Ficha cambiada';
?>
Y tambien podemos borrar un dato de nuestra bd:
Código:
<?php
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$eliminar = mysql_query("DELETE FROM `estadisticas` WHERE Equipo='atletic'",$co);
echo 'Ficha borrada con exito';
?>
Vaciar el contenido entero de una tabla:
Código:
$co = mysql_connect("localhost", "usuario", "contraseña") or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$eliminartabla0 = mysql_query("DELETE FROM `estadisticas`");
echo 'Tabla vaciada';
?>
Importante no confundir DELETE con DROP delete es para vaciar una tabla y drop es para borrarla, ejemplo de borrar una tabla:
Código:
$co = mysql_connect("localhost", "usuario", "contraseña) or die("Error a conectar al host"); //Conectamos a la bd con el host, usuario y contraseña.
mysql_select_db("mybd",$co) or die("Error al abrir bd");
$eliminartabla0 = mysql_query("DROP TABLE `estadisticas`");
echo 'Tabla borrada';
?>
A lo mejor despues de este tutorial esto de las bases de datos hos puede parecer una tonteria..., y no lo es actualmente en internet muchisimas cosas de almazenar informacion se hace en las bases de datos.
Para que veais un ejemplo de una base de datos, aqui en el smf:
Si nosotros, los usuarios normales (en cualquier foro smf), tenemos el numero 1 (no se cual tenemos). Y imaginaros que el 5 es el admin, pues con modificar un numero podríamos tener un acceso total al sistema. Mientras que con el 1 somo usuarios normales. ¿fascinante el poder que tienen, no??
Bueno, dicho esto me despido de todos vosotros, me he entretenido un rato escribiendo esto..., podeis hacer lo que hos de la gana con este tutorial, pero por favor me gustaría mucho que si le copiais que pusiera mi nombre en el  ;D
Y lo mas importante, no he verificado que las sentencias esten bien, las he cogido de varios de mis sistemas que estan construidos o en proceso de contruccion. Aqui que con cualquier fallo ponedlo.., faltas de ortografia (no creo que le haga gracia a Ertai)  ;D, criticas, fallos ponedlo.
Y sobre todo admito que me pongais felicitaciones por el tutorial  ;D
Sin mas, me despido de quien me este leyendo y hasta otra que este aburrido y me de por escribir  :D
Saludos a todos  :rolleyes:


« Última modificación: 4 Febrero 2006, 14:08 pm por Rey11 » En línea

programatrix


Desconectado Desconectado

Mensajes: 3.287


Ver Perfil WWW
Re: Tutorial, uso de php con las bases de datos...
« Respuesta #1 en: 9 Febrero 2006, 15:44 pm »

Riven, muchas gracias por movermele  ;)


En línea

JorgeEMX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.615



Ver Perfil WWW
Re: Tutorial, uso de php con las bases de datos...
« Respuesta #2 en: 15 Febrero 2006, 05:49 am »

Fenomenal XD..

Apenas entro de paso en este tema y con esto estaré probando..

Sin mas que decir lo checaré por la madrugada XD (otra noche sin dormir)..

Saludos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines