En JosSecurity agradecemos cualquier ayuda para poder mantener este proyecto, si deseas donar por favor da clic en el botón de al lado y te daremos algunas opciones para hacerlo.

Consultas con mysqli multi-lenguaje y custom

En JosSecurity ofrecemos 2 tipos de consulta generales, cada una ofrece diferentes formas de uso, se recomienda usar un jossito Gran MySQL o un jossito custom para no tener problemas con nuevas versiones.

Recuerda usar cualquier jossito dependiendo de tus necesidades.

Gran MySQL

Desde la versión 1.7.6 de JosSecurity se incluye el plugin Gran MySQL donde se mejora la función obsoleta “consulta_mysqli” o mejor conocido como “consulta multi-lenguaje”, antes obligábamos al usuario a llenar todos los campos del Jossito, con este plugin podrás tener todo más organizado y solo deberás llenar algunos campos obligatorios.

Con la nueva versión 2.1.1 podrás tener mayor seguridad, pero ahora deberás integrar nuevas cosas.

A continuación, te explicaremos cómo usarlo:

				
					<?php
$consulta = new GranMySQL;
$consulta -> cerrar();
// Desde la versión 2.1.1 ya no existe el jossito cerrar() ya que automáticamente lo hace el destructor.
?>
				
			

Primero deberemos asignarle a una variable la clase GranMySQL, de esta manera accederemos a él plugin, una vez hecho esto tenemos 3 Jossitos que podemos usar, el primero es clasic, el segundo where y el tercero es InnerJoin, estas funciones hacen lo mismo que el jossito obsoleto, una vez que hayas hecho tu consulta, se recomienda que cierres el jossito con la funcion cerrar.

Ahora te explicaremos cómo usar a Gran MySQL.

Gran MySQL Clasic

				
					<?php
$consulta = new GranMySQL;
$consulta -> seleccion = "*";
$consulta -> tabla = "users";
// No es necesario poner datos en respuesta, por defecto se usa fetch_assoc.
$consulta -> respuesta = "fetch_assoc";

$row = $consulta -> clasic();
echo $row['name'];
?>
				
			

Esta función te permite hacer una consulta sencilla, nuestro resultado SQL que nos devolverá será de la siguiente consulta:

				
					SELECT * FROM users
				
			

Gran MySQL Where

				
					<?php
$consulta = new GranMySQL;
$consulta -> seleccion = "*";
$consulta -> tabla = "users";
// Puedes usar la siguiente línea en caso de requerirlo.
//$consulta -> personalizacion = "ORDER BY DESC";
// No es necesario poner datos en respuesta, por defecto se usa fetch_assoc.
//$consulta -> respuesta = "fetch_assoc";
$consulta -> comparar = "id";
$consulta -> comparable = 1;
$row = $consulta -> where();
echo $row['name'];
?>
				
			

Con esta consulta podrás ponerle una condición con where de tal manera que, puedas traer un dato en específico.

Nuestro resultado SQL que nos devolverá será el siguiente:

				
					SELECT * FROM users WHERE 'id' = 1;
				
			

Gran MySQL Inner Join

				
					<?php
$consulta = new GranMySQL;
$consulta -> seleccion = "*";
$consulta -> tabla = "juegos";
$consulta -> tabla_innerjoin = "usuarios";
$consulta -> comparar = "usuarios.id_username";
$consulta -> comparable = "juegos.id_juegoname";
$consulta -> personalizacion = "ORDER BY DESC";
// No es necesario poner datos en respuesta, por defecto se usa fetch_assoc.
//$consulta -> respuesta = "fetch_assoc";
$row = $consulta -> InnerJoin();
echo $row['clash'];
?>
				
			

La consulta Inner Join te permite conectar tablas por igualdades, pero, también te permitirá personalizar la salida de datos, nuestro resultado SQL es el siguiente:

				
					SELECT * FROM juegos INNER JOIN usuarios ON usuarios.id_username = juegos.id_juegoname ORDER BY DESC;
				
			

Consulta custom

Este tipo de consulta es super sencillo pues, tú estructuras tu código y el sistema organiza toda la información de manera rápida.

Ahora te daremos varios ejemplos de uso.

				
					<?php

//ejemplo 1

$row = consulta_mysqli_custom_all("SELECT * FROM users");

//ejemplo 2

$row = consulta_mysqli_custom_all("SELECT user,email,juego FROM users INNER JOIN juegousuario ON users.id = juegousuario.id_juegousuario WHERE users.id = 1");

//ejemplo 3

$row = consulta_mysqli_custom_all("SELECT email, password FROM users WHERE id = 1");

?>
				
			

Advertencia: Desde la versión 1.7.5 de JosSecurity el Jossito Multi-lenguaje ha desaparecido ya que muchos la consideran obsoleta y prefieren usar un Jossito fijo como “consulta_mysql_clasic”.

Si tienes una versión anterior puedes leer este artículo, pero no se recomienda usar este Jossito si deseas actualizar más adelante.

Los únicos Jossitos funcionando en este artículo es “Gran MySQL” y “Consulta custom”.

Consulta multi-lenguaje

Este jossito te permite poder hacer una consulta dependiendo de tus necesidades, este jossito debe estar muy bien estructurado sino puede fallar y no ejecutarse la consulta.

Este jossito maneja 3 tipos de consultas, la primera es la consulta clásica, le sigue una consulta con una condición y finalmente una consulta con un inner join.

La estructura de este jossito es la siguiente:

				
					<?php

$row = consulta_mysqli($select_db,$table_db,$custom,$sentence,$data,$compare,$inner);

?>
				
			

Deberás llenar las variables con la información que necesites.

Consulta multi-lenguaje clásica

Esta consulta te permite hacer algo sencillo, a continuación te mostramos cómo funciona.

				
					<?php

$row = consulta_mysqli("*","users","","clasic","","","");

?>
				
			

Con esta consulta estamos pidiendo todos los datos de la tabla users y le estamos diciendo que usaremos la estructura clasic.

Nuestro resultado sql sería el siguiente:

				
					SELECT * FROM users
				
			

Consulta multi-lenguaje con una condición

Esta consulta permite juntar cualquier cosa con un where, te daremos dos ejemplos de un uso para poder aclarar este jossito.

Ejemplo 1:

				
					<?php

$iduser = 1;

$row = consulta_mysqli("user,email, juego","users","INNER JOIN juegousuario ON users.id = juegousuario.id_juegoname","where","users.id",$iduser,"");

?>
				
			

Con este ejemplo usamos un simple inner join donde necesitamos las tablas “users” y “juegousuario”, traemos los siguientes datos “user ,email, juego”, antes de terminar, en donde va la variable sentence le pusimos where para invocar esa función, finalmente le pedimos que compare el id de users con la variable establecida. Nuestra sentencia SQL se vería de la siguiente forma.

				
					SELECT user,email,juego FROM users INNER JOIN juegousuario ON users.id = juegousuario.id_juegousuario WHERE users.id = 1
				
			

Ejemplo 2: Ahora haremos un código más sencillo y típico de una consulta cuando inicias una sesión.

				
					<?php

$iduser=1;

$row = consulta_mysqli("email, password","users","","where","id",$iduser,"");

?>
				
			

Con esta sentencia pedimos “email, password” de la tabla “users”, no le agregamos un codigo modificado así que dejamos vacías las comillas, le informamos que usaremos una sentencia where, comparamos el id con la variable “iduser” y finalmente dejamos comillas inservibles.

Nuestra sentencia SQL se vería de la siguiente forma.

				
					SELECT email, password FROM users WHERE id = 1;
				
			

Consulta multi-lenguaje con inner join

Esta consulta es mas fácil que una con condición, si bien puedes customizar tu código, este jossito te será mas fácil de usar que el ejemplo 1 de la consulta multi-lenguaje con una condición.

A continuación te mostraremos el primer ejemplo de una consulta de usuarios con un banco:

				
					<?php

$row = consulta_mysqli("usuarios.usuario, cuenta_ahorro.dinero","usuarios","INNER JOIN cuenta_ahorro ON info_opt.id_c_ahorros=cuenta_ahorro.id;","innerjoin","info_opt.id_users","usuarios.id","info_opt");

?>
				
			

Se ve complicado per no lo es, la cuestión es que usamos la variable custom y por defecto, no se debería llenar pero es posible hacerlo, nuestro resultado será el siguiente.

				
					SELECT usuarios.usuario, cuenta_ahorro.dinero FROM usuarios INNER JOIN info_opt ON usuarios.id=info_opt.id_users INNER JOIN cuenta_ahorro ON info_opt.id_c_ahorros=cuenta_ahorro.id;
				
			

Nuestro siguiente ejemplo es super sencillo, ahora solo usaremos lo básico para que puedas entenderlo.

Ejemplo 2:

				
					<?php

$row = consulta_mysqli("*","juegos","","innerjoin","juegos.id_juegoname","usuarios.id_username","usuarios");

?>
				
			

Este código es mas entendible por lo que, no hay mucho que explicar. Nuestro resultado será el siguiente.

				
					SELECT * FROM juegos INNER JOIN usuarios ON usuarios.id_username = juegos.id_juegoname
				
			

Consultas con mysqli multi-lenguaje y custom