[TUTORIAL]Aprende a programar php-mysql
-
Bueno esto va para todo aquel que quiere aprender a crear scripts para las páginas web y en los que se necesita conectar con una base de datos mysql, ósea ranking, registro, entre otros que nos pueden ser de utilidad.
Primero que nada debo decirles que deben tener instalado el programa xammp o el que prefieran que les sirva para probar si funcionan sus scripts.
Si solo quieres agarrar el script copiarlo y pegarlo en la web pues te pido por favor sal de este post que para eso no está hecho.
Yo explicare todos los scirpts de la manera más simple posible, si tienen dudas pregunten que para eso estoy, lo principal es que entiendan cada parte del script y como trabaja todo en conjunto, si entienden eso entonces sabrán programar php, ya que memorizarse 100 funciones no te garantiza que sepas programar, lo que realmente dice que sabes programar es que entiendes cada parte del código, claro que debes aprenderte algunas funciones, lo más importante es entender.
Comencemos entonces, lo principal que deben saber para crear scripts en php es que para empezar y terminar un script hay que usar unos "comandos" por así decirlos, los cuales son:
//este va al final del script y nos dice que ya termino el código en php.
Otra cosa a tomar en cuenta son las "//" eso se utiliza para escribir comentarios, los cuales no son tomados como ordenes, ósea, son ignorados, solo están ahí para indicar ciertas cosas y evitar alguna confusión, verán que los usare bastante en mis explicaciones.
Glosario de Comandos y funciones
Acá iré colocando cada código y función que se utiliza en los scripts, si no recuerdan para que sirven solo lo buscan acá, intentare dejarlos lo mejor explicado posible.
?> : este código indica el final del php, si no cierran con esto el script les puede ocasionar muchos errores.
$variables: una variable puede tener cualquier nombre, pero siempre debe tener al principio el signo dólar "$". Las variables son como cajas o contenedores que almacenaran para su posterior uso cualquier valor que nosotros queramos darles, ay sea un valor fijo o una función.
echo : este código se utiliza para mostrar en pantalla los datos que se le asignen.
include: esta función incluye el script que se encuentre dentro del archivo que se le asigne, el archivo asignado debe ir dentro de comillas.
mysql_connect() :esta función sirve para conectar al servidor de datos mysql, dentro del paréntesis deben ir los datos del a conexión en orden, primero la ip, segundo el usuario y tercero la contraseña, recordando que cada uno debe estar dentro de comillas (") y separado por comas (,).
mysql_select_db(): esta función sirve para que una vez conectados al servidor podamos elegir a que base de datos queremos conectar, esta debe ir dentro del paréntesis y entre comillas (").
mysql_query(): sirve para ejecutar una consulta sql, o una query que es lo mismo, la consulta debe ir dentro del paréntesis encerrada entre comillas.
mysql_fetch_object(): sirve para buscar un dato u objeto en la base de datos, esto nos permite más adelante mostrar los datos encontrados en pantalla. Como con toda función de este tipo, la orden debe ir dentro del paréntesis entre comillas.
myslq_num_row():esto nos sirve para contar el numero de filas dentro de una tabla dentro de una tabla .
Primer Script : el más sencillo de todos, si no sabes esto no sabes nadalo más básico es crear un script de la siguiente forma:
//recuerden también cerrar el script con esto, sino les dará error.
en ese script se pueden observar 3 cosas que no les había dicho, las cuales son :
1.- $miprimerphp , esto es una variable, piensen en esto como una cajita que guardara lo que ustedes quieran, en este caso le asignamos una frase, pero también podría mostrar el resultado de alguna función (las funciones las verán mas adelante). La variable puede tener el nombre que ustedes quieran, pero deben recordar que debe tener al principio el signo dólar ($) esto determina que es una variable, y el signo "=" se utiliza para agregarle un valor a la variable , y si el valor es un texto en concreto se debe encerrar entre comillas ("") o no sé cómo se llama esto XD ( ' ' ), los paréntesis no van.
2.- También debieron notar que 2 líneas terminaban en punto y coma ";" , todas las líneas que se encuentren dentro del script deben terminar en ";" excepto los comentarios y algunas "sentencias" (ya lo verán mas adelante).
3.- El código echo seguido de la variable ($miprimerphp) , esa función sirve para que se muestre en pantalla lo que le prosiga.
Este es el script mas básico que se puede crear, entiéndanlo bien, ya que si no lo comprenden a fondo se les harán mucho mas difíciles los siguientes.
Si copian ese script y lo guardan en un documento cuya extensión sea .php y lo meten en su servidor podrán ver lo que dice colocando en su navegador web [http://localhost/aca][0]">[http://localhost/aca][1] el nombre de el archivo.phpScript para conectarse a la base de datos
Este script es la forma mediante la cual enlazaremos nuestra página con la base de datos de nuestro servidor, sin esto no serviría ni el registro, ranking, contador de pj's, etc. Estos scripts se pueden colocar en archivos separador, y agregarlos dentro de los otros scripts mediante la función include (lo veremos más adelante) o podemos colocarlos directamente en el script, pero es más sencilla la primera forma, y más práctica para páginas web.
Acá tienen un ejemplo del script de conexión más simple ://recuerden cerrar con esto
Acá lo que hemos hecho es utilizar la función mysql_connect () que como el nombre lo indica conecta al servidor mysql, los datos de la conexión deben ir dentro de un paréntesis en el orden siguiente: ip, usuario, contraseña, siempre separados por comas "," y comillas "", luego vemos la función or die, lo cual significa que si la conexión falla se mostrara el mensaje que se ve dentro del paréntesis.
Podemos seleccionar la base de datos a la que queremos conectar si utilizamos la función mysql_select_db () dentro del paréntesis iría la db a la que se quiere conectar.
//recuerden cerrar con esto
así nos quedaría el script para conectar a la base de datos player, ahora ya pueden crear scripts así para conectar a cualquier base de datos que necesiten.
Mostrar Datos extraídos de la db: solo una cifra(mas adelante ranking completo)
Mostrar datos puede ir desde que se visualice una sola palabra, hasta un ranking estructurado con una tabla, nosotros acá comenzaremos por lo más sencillo, mostrar solo una cifra.
Tenemos este script que nos sirve para mostrar una cifra que sacaremos de la base de datos de una tabla en concreto.
para conectar a la base de datos utilizaremos el script que creamos anteriormente, yo en mi caos lo guarde con el nombre de db_player, usamos la función include que quiere decir incluir, ósea el contenido del script que se seleccione será incluido/introducido en el lugar donde se utilize la función.Seguido de esto creamos una variable ($query) a la cual se le da como valor al función mysql_query, la que no hace otra cosa sino ejecutar una query valga la redundancia, dentro del paréntesis se encuentra la query a ejecutar, como podemos ver esa query lo que hace es seleccionar la tabla player, no selecciona ningún objeto en concreto porque no se le ha ordenado eso, sino la tabla completa.
Luego vemos la variable $numero a la cual se le asigna la función mysql_num_rows, esta función cuenta la cantidad de objetos que hay en el lugar donde se lo indiquemos, en este caso le indicamos que debe contabilizar los objetos de la variable $query, la cual tiene como valor toda la tabla player, así que la función contara todos los elementos de la tabla player, ósea todas las filas que cada una representa un pj.
En la ultima línea vemos que la función echo mostrara la palabra Jugadores : seguido de la variable $numero, pero no mostrara la variable sino el valor de esta, y dicho valor es la cantidad de elementos contados en la variable $query la cual a su vez es la tabla player de la db player(esto último fue una explicación verbal de cómo entiende la maquina los códigos en php del último script).
Mostrar datos extraídos de la db: ranking algo sencillo
el ranking que les mostrare ahora, es lo más sencillo posible, este mostrara la lista de GM's del server dentro de una tabla por orden de nombre y enumerados.
**"; echo " $i $busqueda->mName"; } ?>**
Ya esto es algo más complicado, pero si nos fijamos bien vemos cosas que a estas alturas ya deben ser familiares, como por ejemplo la función include, el archivo conecta.php es el de conexión más simple, por eso abajo vemos que selecciona la base de datos common que es donde se encuentra la lista de los GM.
Seguido vemos que esta la variable $i que es igual a 0, esto lo utilizaremos para la numeración, y abajo la variable $GMs que ejecuta una query donde selecciona todos los objetos de la tabla gmlist ordenados por mName (esto vendría siendo el nombre, pero en esa tabla se llama así).
En la parte siguiente vemos la sentencia while, que revisa todas las querys y funciones que se le indiquen y las ejecuta de ser correctas, y ahí mismo vemos que a la sentencia while se le asigna la variable $busqueda que tiene como valor la función mysql_fetch_object la cual busca los objetos que se le asignen. y vemos que se le asigna buscar la variable ($GMs) y el valor de esta variable es la query que ya explicamos arriba.
Luego dentro de las llaves vemos que lo primero que se hace es decir que la variable $i es igual a $i +1, esto se hace porque las tablas de la db se enumeran desde 0, así que le damos a la variable $i el valor de 0 y luego decimos que es ella misma +1 para que enumere desde el número 1 y no desde el 0, y se preguntaran,¿ por qué no asignarle de una vez el valor de 1 ? pues porque si se le asigna ese valor, que daría como fijo y enumeraría a todos los objeto de la tabla como el 1.
Ahora lo que vemos es la creación de la tabla, esto es un poco de código html , usamos el echo para que muestre todo lo que viene a continuación, en al línea que sigue al echo que estará centrado, que será en negrita , la fuente, color y tamaño, y el del final no sé porque XD pero es el que hace que lo que esta antes de él afecte al contenido de la tabla y a la tabla en si(discúlpenme no saber bien eso pero en html aun estoy un poco verde).
En el otro echo vemos el table bordes, es fácil deducir que esto determina el ancho del borde de la tabla, si lo dejamos en 0 no habrá bordes (si los habrá pero no se verán), el indica que esto es un elemento que va dentro de la tabla, y el 50 indica el tamaño de la celda, y elindica que dentro de esa celda ira texto, luego está la variable que es de donde se van a extraer los datos, la primera se coloca sola porque solo es numeración, pero la $busqueda se le asigna el valor mName que hace que muestre ahí la columna con dicho nombre , luego están los códigos para cerrar las ordenes html, se cierra la llave que encierra a toda la tabla y por ultimo cerrar el script.
Si cambian la db a la que conectan y la tabla, podrían hacer un ranking de pj's agregando mas campos a la tabla, intenten hacerlo que si lo logran sabrán que entendieron bien, igual yo más adelante les mostrare el ranking completo y estructurado.
Crear Registro para el server: parte del script en php
Ahora les vengo a enseñar a crear un registro para su server, este por ahora solo tendra los campos basicos que se necesitan, como los son id y contraseña, pero si lo entienden bien sabran como agregar mas datos.
comenzamos habriendo el scrip e incluyendo el archivo para conectarnos al server(recuerden qeu el archivo ya lo deben tener creado, con el nombre quequieran):
ahora utilizaremos algo nuevo, una sentencia, una sentencia sirve para "controlar" la información, es decir, hacer que sucedan ciertas cosas según lo que yo indique, por ejemplo si la cuenta se creo correctamente que muestre alcomo como "se ha creado la cuenta", y si por el contrario no se creo por algún motivo, si usamos otra sentencia, pasaria a mostrar lo que tiene la siguiente sentencia, y asi sucesivamente. Para utilizar la función de sentencia if debemos valga la redundancia crear una sentencia, y esta sentencia debe ir entre parentesis al lado de if, ahora habrimos parentesis y aca escribimos isset, qeu es otra función, esta comprueba si una variable ha sido definida, osea si se ha insertado correctamente en la db, ahora dentro de un parentesis al lado de la función isset colocamos esto : ($enviar['submit']) && $enviar['submit'] == 'Register') esto podriamos decir que significa que enviara los datos solo si los datos a enviar son verdaderos, esa linea enreda un poco, pero basta on entender qeu se le asignan unas variables a submit qeu es enviar y que eso puesto de esa forma es lo que da paso a enviar los datos. haciendo esto quedaria asi : Despues de esto habrimos una llave "{" y adentro de esto determinaremos los datos que se enviaran. primero creamos una variable $username, y a esta le colocamos como valor la función mysql_real_escape_string(), la cual sirve para enviar datos qeu se usaran en consultas sql, ahora dentro del parentesis qeu tiene la función colocaremos esto: $enviar['username'] , veran que esto se parece a lo que escribimos mas arriba, esto es porque lo de arriba dal a función de enviar y aca asignamos los datos a enviar, ahora hacemos este ultimo paso denuevo pero con la contraseña, la cual llevara de nombre password, esto quedaria asi: ahora pasamos a crear una variable, a la cual se le asignara una consulta sql qeu sera la qeu inserte los datos en la db, seria algo asi : $sql = "INSERT INTO account SET login = '".$username."', password = PASSWORD('".$password."')"; ahora creamos otra variable, y a esta le asignamos como valor la función mysql_query() , que como ya he dicho sirve para ejecutar una consulta sql que en este caso sera la qeu hemos creado anteriormente, pero para qeu ejecute la consulta dentro del parentesis debemos "decirle" donde esta la consulta que va a ejecutar, eneste caso colocariamos el nombre de la variable a la que le hemos asignado como valor la consulta : $result = mysql_query($sql); llegado a este paso el registro ya funciona, pero aun debemos hacer que si el registro es exitoso nos indique que lo fue, y si es la contrario también, para eso agregamos esta linea: if($result) { echo 'Cuenta Creada con exito'; } else { echo 'No se ha creado la cuenta'; } la sentencia if nos dice qeu si la variable result se ejecuta sin problemas mostrara la primera frase, si es al contrario pasara a la siguiente sentencia y mostrara la frase correspondiente, luego de todo esto cerramos la llave que abrimos al principio y ya estar listo el script y se veria de esta forma: Crear registro para el server: parte del cuerpo en html para crear el cuerpo de nuestro registro lo primero qeu debemos hacer es habrir el html de la siguiente forma : ahora metemos aca el cuerpo que seria esto :
-
Usuario-Usser:
-
Contraseña-Password:
y ustedes diran pero que narices es eso? pues son codigos que hacen el formulario del registro y ya se los voy a explicar. la primara linea dice div, un div es como una cajita, sirve para agrupar algunos elementos entre otras cosas, lo qeu ven junto a els define que este sera contenedor y que tendra estilo 3(los estilos se definen con anterioridad en lenguaje css, talvez explique un poco de eso despues auqneu no se mucho) el segundo div define que sera contenedor de texto, la linea de abajo abre un formulario y la action define lo que harael formulario y ahí debemos indicarle donde estan las ordenes para lo que va a ejecutar, en este caso seria dentro del mismo script ais que colocamos el nombre del script, para el method no se me ocurre una explicación espontanea, asi qeu copypasteare un conceptico : method Mediante este atributo le indicamos al formulario la forma en la que el formulario será enviado. Existen dos valores posibles: get y post. El valor get es el valor por defecto. Si no concretamos el method, la información se enviará a través de este medio. “get” indica que los datos enviados se adjuntarán en la barra de direcciones del cliente, al final de la url correspondiente y después de un signo de interrogación de cierre. Si se envía más de un dato, éstos irán separados por el símbolo &. Un ejemplo de un formulario enviado por el method=“get” sería el siguiente: [http://www............?nombre1=valor1&nombre2=valor2][0]">[http://www............?nombre1=valor1&nombre2=valor2][2] El valor post indica que el método de envío no se hará a través de la url, sino formando parte del cuerpo de la petición. el del a linea siguiente es para colocar viñetas, y junto con
-
sirven para hacer una lista, si no colocamos los
-
en las lineas las mostrara una al lado de otra, en cambio al hacerlo las muestra en forma de lista, una abajo de la otra.
Alli también observamos esto :
-
Usuario-Usser://esto es solo las letras indicando que iran el lista y con el estilo 4
-
/el input nos indica qeu este sera uno de los campos a rellenar en el formulario/
-
//esto es para dejar un espacio.
En lo anterios vemos donde dice input se marca un type, en esto si colocamos text se escribira normalmente y los caracteres se veran tal cual, en cambio si colocamos password cuando escribamos mostrara solo puntos, el name que se le coloca es para asociarlo con el script en php de arriba, y la size define el largo que tendra el campo a rellenar, las tres lineas que ven mas abajo son lo mismo pero para insertar la contraseña. Laultima linea es para crear el boton qeu hara la acción de enviar los datos osea los registrara, lo que ahí cambia es que el type debe ser submit, para qeu cumpla la acción del boton qeu envia los datos, se le asocia al name submit para que cumpla la acción del script en php y en value se coloca la palabra qeu se quiere que salga escrita en el boton, cierran el html y listo queda asi :
-
Usuario-Usser:
-
Contraseña-Password:
esto junto al script en php quedaria algo asi :
-
Usuario-Usser:
-
Contraseña-Password:
Seguiré Agregando mas partes al tutorial poco a poco, espero les sea de ayuda. Edito: me equivoque y lo puse en guías de metin2 cuando debe ir en programación, discúlpeme esa.
-
[0]: <a href=
[1]: http://localhost/aca
[2]: http://www............?nombre1=valor1&nombre2=valor2 -
-
y para k lo vas poner en programacion
sil o tienes k poner aka en metin 2 pork tu estas ecxplicando lo de db con root y con la ip del server
ope agrega a komando_98_asf@hotmail.com
pon como acer un registro -
pues tienes algo de razon, pero segun las reglas esto debria ir en programación en la parte de web's, pero si lo quieren dejar aca eso ya lo deciden los mod.
el registro va ams adelante, que lo estoy explicando por grado de dificultad, y le agradeceria qeu no colocaran mensajes a menso que sea completamente necesario, ya que no me va a caber todo en un solo post y si quedan muy separados uno de otro entonces se pierden un poco.
-
No es nada mal explicado.
Muy bueno feo :wiii: -
muy buena tu explicacion pero como le hago para hacer un script que me diga los nombre de los usuarion online en el juego al parecido a esta imagen