hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
20 de Noviembre de 2008, 09:36:18
Noticias: Buscador del foro
Para ver este enlace Registrate o Inicia Sesion
aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Desarrollo Web
| | |-+  Php (Moderador: shevchenko)
| | | |-+  Tutorial, uso de php con las bases de datos...
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Tutorial, uso de php con las bases de datos...  (Leído 1929 veces)
reydelmundo11
NZ1
*
Desconectado Desconectado

Mensajes: 43


Hackersclub


Ver Perfil WWW
« : 05 de Marzo de 2006, 10:47:53 »

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_d b 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  Grin.
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 undatodeesatab la = '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("REPLACE 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:
<?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");
$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:
<?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");
$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  Grin
Sin mas, me despido de quien me este leyendo y hasta otra que este aburrido y me de por escribir  Cheesy
Saludos a todos  :rolleyes:
Fuente original:

Para ver este enlace Registrate o Inicia Sesion
En línea

Obtenga su foro
Para ver este enlace Registrate o Inicia Sesion
smf
gratuito en:

Para ver este enlace Registrate o Inicia Sesion
Universal SAC
NZ3
***
Desconectado Desconectado

Mensajes: 576


Universal SAC


Ver Perfil
« Respuesta #1 : 09 de Marzo de 2006, 08:30:54 »

Que buen tutorial yahoo
Me ha gustado mucho y me ha ayudado bastante, esto si que me sirve para muchas cosas jojo

Aunque me quedé con la duda... DELETE vacía y DROP elimina ? :s jeje, yo no se php pero según mi pocos simientos en "ingles", DELETE = borra, elimina... DROP = tira, vacia...
Pero ya probaré yo, jeje

Gracias  Cheesy

PD: este tuto es tuyo reydelmundo11 ?
En línea

~UNIVERSAL[HACK]
reydelmundo11
NZ1
*
Desconectado Desconectado

Mensajes: 43


Hackersclub


Ver Perfil WWW
« Respuesta #2 : 15 de Marzo de 2006, 07:06:57 »

Muchas gracias  Wink
Pues no me he equivocado, es así, delete borra todo el contenido de una tabla o sea la vacía y drop borra la tabla en si incluyendo todo su contenido.
Si, es mío tienes, puedes ponerle en otra web si quieres siempre que pongas mi nombre  y mi web, la web original
Para ver este enlace Registrate o Inicia Sesion
Saludos  Wink
En línea

Obtenga su foro
Para ver este enlace Registrate o Inicia Sesion
smf
gratuito en:

Para ver este enlace Registrate o Inicia Sesion
Bifrost
Visitante
« Respuesta #3 : 18 de Abril de 2006, 03:30:41 »

Para mí en lo particular este tutorial esta muy bueno ya que yo no se nada de PHP y quiero aprender..salu dos!!
En línea
reydelmundo11
NZ1
*
Desconectado Desconectado

Mensajes: 43


Hackersclub


Ver Perfil WWW
« Respuesta #4 : 19 de Abril de 2006, 11:02:54 »

Bueno, pero ten en cuenta que este tutorial esta reflejado para aprender a usar mysql junto php, no php.
Saludos
En línea

Obtenga su foro
Para ver este enlace Registrate o Inicia Sesion
smf
gratuito en:

Para ver este enlace Registrate o Inicia Sesion
kronix
Moderador Global
*****
Desconectado Desconectado

Mensajes: 100


No al soft. pirata, SI al GNU!


Ver Perfil WWW
« Respuesta #5 : 08 de Mayo de 2006, 06:45:18 »

wazaaaaaaaaa
esta muy bueno el manual.. dime reydelmundo11. . es 100% tuyo?
esque esta bien bueno..
PD: oye reydelmundo11, tu firma no es adecuada., segun las reglas de CPH solo se le permite a los mods tener una firma publicitaria.
« Última modificación: 08 de Mayo de 2006, 06:46:59 por kronix » En línea

No seRESPONDE mediante mensajes privados
Para eso tenemos un foro, Utilizalo

A menos que seas chica y tengas webcam

Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online