Jump to content

Sëths

Miembro
  • Contador contenido

    3
  • Ingreso

  • Última visita

  • Días ganados

    1

Actividad de reputación

  1. Me Gusta
    Sëths reacted to Serex in [Guía] Como hacer querys correctamente en PHP con mysqli   
    Hacia tiempo que no se veia una buena guia elaborada por aqui, gracias por el aporte, y muy bueno!
  2. Me Gusta
    Sëths got a reaction from Serex in [Guía] Como hacer querys correctamente en PHP con mysqli   
    [Guía] Como hacer querys correctamente en PHP con mysqli
     
    Hoy os vengo a enseñar como hacer query en php correctamente para sacar información de vuestro servidor de Metin2. (Esta guía la actualizaré dependiendo de las dudas que tengáis y lo que queras hacer). Lo siento por cualquier errata que pueda cometer en mi ortografía pero este es mi primer post en el Foro.
     
    Indice
    Archivo de configuración Numerar filas Mostrar filas Filtros Sumar valores de una columna Archivo de configuración
     
    Lo primero que vamos a hacer, es crear un archivo de configuración donde vamos a tener los datos de acceso a nuestro servidor (config.inc.php). En el, vamos a introducir el siguiente código y editaremos los valores de acceso.
     
    config.inc.php >
     
    <?php $_CONNECTION = array ( 'dbhost' => 'x.x.x.x', //Host del servidor (Ej. 192.168.1.100) 'dbuser' => 'user', //Usuario de la base de datos 'dbpass' => 'pass' //Contraseña de la base de datos ); //Ahora la conexión de a la base de datos: $conect = new mysqli($_CONNECTION['dbhost'],$_CONNECTION['dbuser'],$_CONNECTION['dbpass']); ?>  
    Ahora que ya tenemos nuestro archivo de configuración, vamos a crear una query.
     
     
    Numerar filas
     
    Vamos a crear una query para contar el numero de cuentas creadas en nuestro servidor. Como sabemos, las cuentas están ubicadas en account.account en nuestra base de datos. Para ello, vamos a introducirnos en el archivo php donde queramos que aparezca dicha información. Como ejemplo, en mi caso, vamos a ir a index.php, y vamos a introducir en siguiente código.
     
    index.php >
     
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $cuentas = $conect->query("SELECT id FROM account.account") $num = $cuentas->num_rows; //Ahora nuestra variable '$num' contiene el número de cuentas que hay en nuestro servidor echo 'Hay un total de '.$num.' cuentas creadas'; $cuentas->close(); ?>  Esta sería la forma de contar el numero de filas, si por ejemplo queremos contar el número de items que hay en circulación en el juego, seria así: "SELECT id FROM player.item".


    Mostrar filas
     
    Ahora digamos que queremos mostrar todos los nombres de los jugadores en una tabla junto a su nivel. Para ello vamos a ubicarnos en el archivo php donde queramos mostrar dicha tabla.
     
    index.php >
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. echo '<table>'; $personajes = $conect->query("SELECT name,level FROM player.player"); if($personajes->num_rows){   while($row = $personajes->fetch_array(MYSQLI_ASSOC)){     echo '<tr>';       echo '<td>'.$row["name"].'</th>';       echo '<td>'.$row["level"].'</th>';     echo '</tr>';   } }else{   echo 'No hay ningún valor'; } echo '</table>'; $personajes->close(); ?> Filtros
     
    Ahora que ya sabemos contar y numerar los datos, vamos a aplicar filtros a las querys para hacerlas más interesantes. Por ejemplo vamos a coger la query de mostrar filas y vamos a poner un filtro que diga que los muestre en orden según el nivel. Para ello lo editaremos añadiendo 'ORDER BY level'. Debe quedar algo así.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level"); Si ejecutamos esta query, nos daremos cuenta que los ordena, pero de menor a mayor. Si queremos que los ordene de mayor a menor, añadiremos 'DESC' al final.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC"); Si tenemos muchos usuarios puede demorarse mucho la query, entonces digamos que solo queremos que muestre los 10 primeros según el nivel. Para ello añadiremos lo siguiente al final 'LIMIT 10'
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC LIMIT 10"); En la siguiente tesitura nos ocurre que solo queremos mostrar los personajes mayores del nivel 50, dejando los filtros anteriores. Para eso, solo necesitamos añadir lo siguiente 'WHERE level > 50' y nos debería quedar algo así
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 ORDER BY level DESC LIMIT 10"); Ahora queremos añadir otro filtro que solo muestre los personajes que no lleven más de 1 semana sin loguearse al juego. Para ello utilizaremos la función de DATE_SUB(). Vamos a añadir el siguiente código a la query 'DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play' (Podemos modificar el intervalo sustituyendo 'WEEK' por lo que queramos. Ej: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR) Nos tiene que quedar de esta forma
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 AND DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play ORDER BY level DESC LIMIT 10"); Sumar valores de una columna
     
    Para poder sumar valores de una columna en concreto, como por ejemplo: Queremos saber el yang en total que hay en nuestro servidor. Para ello, necesitaremos usar la función SUM().
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $yang=$conect->query("SELECT SUM(gold) AS gold FROM player.player"); $yang=$yang->fetch_array(MYSQLI_ASSOC); $yang=$yang["gold"]; //Ahora nuestra variable '$yang' contiene el número de yang global que hay en nuestro servidor echo 'Hay un total de '.$yang.' de yang'; ?> Esto nos sirve también para sumar, por ejemplo, el número total de minutos jugados en nuestro servidor.
     
     
    Y este sería el final de la guía. Ya sabéis que este es mi primer post y estoy abierto a sugerencias y dudas que pongáis en los comentarios.
     
    Un saludo y hasta la próxima!
  3. Me Gusta
    Sëths got a reaction from werednnbs in [Guía] Como hacer querys correctamente en PHP con mysqli   
    [Guía] Como hacer querys correctamente en PHP con mysqli
     
    Hoy os vengo a enseñar como hacer query en php correctamente para sacar información de vuestro servidor de Metin2. (Esta guía la actualizaré dependiendo de las dudas que tengáis y lo que queras hacer). Lo siento por cualquier errata que pueda cometer en mi ortografía pero este es mi primer post en el Foro.
     
    Indice
    Archivo de configuración Numerar filas Mostrar filas Filtros Sumar valores de una columna Archivo de configuración
     
    Lo primero que vamos a hacer, es crear un archivo de configuración donde vamos a tener los datos de acceso a nuestro servidor (config.inc.php). En el, vamos a introducir el siguiente código y editaremos los valores de acceso.
     
    config.inc.php >
     
    <?php $_CONNECTION = array ( 'dbhost' => 'x.x.x.x', //Host del servidor (Ej. 192.168.1.100) 'dbuser' => 'user', //Usuario de la base de datos 'dbpass' => 'pass' //Contraseña de la base de datos ); //Ahora la conexión de a la base de datos: $conect = new mysqli($_CONNECTION['dbhost'],$_CONNECTION['dbuser'],$_CONNECTION['dbpass']); ?>  
    Ahora que ya tenemos nuestro archivo de configuración, vamos a crear una query.
     
     
    Numerar filas
     
    Vamos a crear una query para contar el numero de cuentas creadas en nuestro servidor. Como sabemos, las cuentas están ubicadas en account.account en nuestra base de datos. Para ello, vamos a introducirnos en el archivo php donde queramos que aparezca dicha información. Como ejemplo, en mi caso, vamos a ir a index.php, y vamos a introducir en siguiente código.
     
    index.php >
     
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $cuentas = $conect->query("SELECT id FROM account.account") $num = $cuentas->num_rows; //Ahora nuestra variable '$num' contiene el número de cuentas que hay en nuestro servidor echo 'Hay un total de '.$num.' cuentas creadas'; $cuentas->close(); ?>  Esta sería la forma de contar el numero de filas, si por ejemplo queremos contar el número de items que hay en circulación en el juego, seria así: "SELECT id FROM player.item".


    Mostrar filas
     
    Ahora digamos que queremos mostrar todos los nombres de los jugadores en una tabla junto a su nivel. Para ello vamos a ubicarnos en el archivo php donde queramos mostrar dicha tabla.
     
    index.php >
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. echo '<table>'; $personajes = $conect->query("SELECT name,level FROM player.player"); if($personajes->num_rows){   while($row = $personajes->fetch_array(MYSQLI_ASSOC)){     echo '<tr>';       echo '<td>'.$row["name"].'</th>';       echo '<td>'.$row["level"].'</th>';     echo '</tr>';   } }else{   echo 'No hay ningún valor'; } echo '</table>'; $personajes->close(); ?> Filtros
     
    Ahora que ya sabemos contar y numerar los datos, vamos a aplicar filtros a las querys para hacerlas más interesantes. Por ejemplo vamos a coger la query de mostrar filas y vamos a poner un filtro que diga que los muestre en orden según el nivel. Para ello lo editaremos añadiendo 'ORDER BY level'. Debe quedar algo así.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level"); Si ejecutamos esta query, nos daremos cuenta que los ordena, pero de menor a mayor. Si queremos que los ordene de mayor a menor, añadiremos 'DESC' al final.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC"); Si tenemos muchos usuarios puede demorarse mucho la query, entonces digamos que solo queremos que muestre los 10 primeros según el nivel. Para ello añadiremos lo siguiente al final 'LIMIT 10'
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC LIMIT 10"); En la siguiente tesitura nos ocurre que solo queremos mostrar los personajes mayores del nivel 50, dejando los filtros anteriores. Para eso, solo necesitamos añadir lo siguiente 'WHERE level > 50' y nos debería quedar algo así
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 ORDER BY level DESC LIMIT 10"); Ahora queremos añadir otro filtro que solo muestre los personajes que no lleven más de 1 semana sin loguearse al juego. Para ello utilizaremos la función de DATE_SUB(). Vamos a añadir el siguiente código a la query 'DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play' (Podemos modificar el intervalo sustituyendo 'WEEK' por lo que queramos. Ej: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR) Nos tiene que quedar de esta forma
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 AND DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play ORDER BY level DESC LIMIT 10"); Sumar valores de una columna
     
    Para poder sumar valores de una columna en concreto, como por ejemplo: Queremos saber el yang en total que hay en nuestro servidor. Para ello, necesitaremos usar la función SUM().
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $yang=$conect->query("SELECT SUM(gold) AS gold FROM player.player"); $yang=$yang->fetch_array(MYSQLI_ASSOC); $yang=$yang["gold"]; //Ahora nuestra variable '$yang' contiene el número de yang global que hay en nuestro servidor echo 'Hay un total de '.$yang.' de yang'; ?> Esto nos sirve también para sumar, por ejemplo, el número total de minutos jugados en nuestro servidor.
     
     
    Y este sería el final de la guía. Ya sabéis que este es mi primer post y estoy abierto a sugerencias y dudas que pongáis en los comentarios.
     
    Un saludo y hasta la próxima!
  4. Me Gusta
    Sëths got a reaction from ahynoa in [Guía] Como hacer querys correctamente en PHP con mysqli   
    [Guía] Como hacer querys correctamente en PHP con mysqli
     
    Hoy os vengo a enseñar como hacer query en php correctamente para sacar información de vuestro servidor de Metin2. (Esta guía la actualizaré dependiendo de las dudas que tengáis y lo que queras hacer). Lo siento por cualquier errata que pueda cometer en mi ortografía pero este es mi primer post en el Foro.
     
    Indice
    Archivo de configuración Numerar filas Mostrar filas Filtros Sumar valores de una columna Archivo de configuración
     
    Lo primero que vamos a hacer, es crear un archivo de configuración donde vamos a tener los datos de acceso a nuestro servidor (config.inc.php). En el, vamos a introducir el siguiente código y editaremos los valores de acceso.
     
    config.inc.php >
     
    <?php $_CONNECTION = array ( 'dbhost' => 'x.x.x.x', //Host del servidor (Ej. 192.168.1.100) 'dbuser' => 'user', //Usuario de la base de datos 'dbpass' => 'pass' //Contraseña de la base de datos ); //Ahora la conexión de a la base de datos: $conect = new mysqli($_CONNECTION['dbhost'],$_CONNECTION['dbuser'],$_CONNECTION['dbpass']); ?>  
    Ahora que ya tenemos nuestro archivo de configuración, vamos a crear una query.
     
     
    Numerar filas
     
    Vamos a crear una query para contar el numero de cuentas creadas en nuestro servidor. Como sabemos, las cuentas están ubicadas en account.account en nuestra base de datos. Para ello, vamos a introducirnos en el archivo php donde queramos que aparezca dicha información. Como ejemplo, en mi caso, vamos a ir a index.php, y vamos a introducir en siguiente código.
     
    index.php >
     
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $cuentas = $conect->query("SELECT id FROM account.account") $num = $cuentas->num_rows; //Ahora nuestra variable '$num' contiene el número de cuentas que hay en nuestro servidor echo 'Hay un total de '.$num.' cuentas creadas'; $cuentas->close(); ?>  Esta sería la forma de contar el numero de filas, si por ejemplo queremos contar el número de items que hay en circulación en el juego, seria así: "SELECT id FROM player.item".


    Mostrar filas
     
    Ahora digamos que queremos mostrar todos los nombres de los jugadores en una tabla junto a su nivel. Para ello vamos a ubicarnos en el archivo php donde queramos mostrar dicha tabla.
     
    index.php >
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. echo '<table>'; $personajes = $conect->query("SELECT name,level FROM player.player"); if($personajes->num_rows){   while($row = $personajes->fetch_array(MYSQLI_ASSOC)){     echo '<tr>';       echo '<td>'.$row["name"].'</th>';       echo '<td>'.$row["level"].'</th>';     echo '</tr>';   } }else{   echo 'No hay ningún valor'; } echo '</table>'; $personajes->close(); ?> Filtros
     
    Ahora que ya sabemos contar y numerar los datos, vamos a aplicar filtros a las querys para hacerlas más interesantes. Por ejemplo vamos a coger la query de mostrar filas y vamos a poner un filtro que diga que los muestre en orden según el nivel. Para ello lo editaremos añadiendo 'ORDER BY level'. Debe quedar algo así.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level"); Si ejecutamos esta query, nos daremos cuenta que los ordena, pero de menor a mayor. Si queremos que los ordene de mayor a menor, añadiremos 'DESC' al final.
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC"); Si tenemos muchos usuarios puede demorarse mucho la query, entonces digamos que solo queremos que muestre los 10 primeros según el nivel. Para ello añadiremos lo siguiente al final 'LIMIT 10'
    $personajes = $conect->query("SELECT name,level FROM player.player ORDER BY level DESC LIMIT 10"); En la siguiente tesitura nos ocurre que solo queremos mostrar los personajes mayores del nivel 50, dejando los filtros anteriores. Para eso, solo necesitamos añadir lo siguiente 'WHERE level > 50' y nos debería quedar algo así
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 ORDER BY level DESC LIMIT 10"); Ahora queremos añadir otro filtro que solo muestre los personajes que no lleven más de 1 semana sin loguearse al juego. Para ello utilizaremos la función de DATE_SUB(). Vamos a añadir el siguiente código a la query 'DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play' (Podemos modificar el intervalo sustituyendo 'WEEK' por lo que queramos. Ej: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR) Nos tiene que quedar de esta forma
    $personajes = $conect->query("SELECT name,level FROM player.player WHERE level > 50 AND DATE_SUB(NOW(), INTERVAL 1 WEEK) < last_play ORDER BY level DESC LIMIT 10"); Sumar valores de una columna
     
    Para poder sumar valores de una columna en concreto, como por ejemplo: Queremos saber el yang en total que hay en nuestro servidor. Para ello, necesitaremos usar la función SUM().
    <?php //incluimos nuestro archivo de configuración (excepto si ya lo hemos incluido) require 'config.inc.php'; //Ahora vamos a crear la query y la vamos a almacenar en una variable. $yang=$conect->query("SELECT SUM(gold) AS gold FROM player.player"); $yang=$yang->fetch_array(MYSQLI_ASSOC); $yang=$yang["gold"]; //Ahora nuestra variable '$yang' contiene el número de yang global que hay en nuestro servidor echo 'Hay un total de '.$yang.' de yang'; ?> Esto nos sirve también para sumar, por ejemplo, el número total de minutos jugados en nuestro servidor.
     
     
    Y este sería el final de la guía. Ya sabéis que este es mi primer post y estoy abierto a sugerencias y dudas que pongáis en los comentarios.
     
    Un saludo y hasta la próxima!
×
×
  • Crear nuevo...