Mostrando entradas con la etiqueta sql. Mostrar todas las entradas
Mostrando entradas con la etiqueta sql. Mostrar todas las entradas

lunes, 21 de agosto de 2023

Joins en Sql

Inner join 

select ordenes.id_orden, clientes.nombre

from ordenes inner join clientes on ordenes.idcliente = clientes.idcliente;

Left Join

select clientes.nombre, clientes.apellido, ordenes.id_orden
from clientes
left join ordenes on clientes.idcliente = ordenes.idcliente
order by id_orden

ó

select cli.nombre, cli.apellido, ord.id_orden
from clientes cli
left join ordenes ord on cli.idcliente = ord.idcliente
order by ord.id_orden

Right Join

select ord.id_orden,cli.nombre,cli.apellido
from clientes cli
right join ordenes ord on ord.idcliente = cli.idcliente
order by ord.id_orden

Full Join

select ord.id_orden,cli.nombre,cli.apellido
from ordenes ord
full join clientes cli on ord.idcliente = cli.idcliente
order by ord.id_orden

Union (mismo # columnas y  tipo datos similares, no es un join)

  select contacto, ciudad, pais from clientes
  union
  select contacto, ciudad, pais from suplidores


  select contacto, ciudad, pais from clientes
  union all
  select contacto, ciudad, pais from suplidores

select 'Cliente' as Tipo,contacto, ciudad, pais from clientes
  union 
  select 'Suplidor' as Tipo,contacto, ciudad, pais from suplidores


miércoles, 8 de abril de 2020

Cómo obtener la fecha en español, con el formato nombre del mes dia y año

Es normal que en una página web queramos imprimir la fecha mostrando el nombre del mes, por que normalmente lo que hacemos es imprimir una fecha estilo 3/04/2020  y no es lo ideal, ya que para visualizar eventos en un programa, blogs, entre otros el formato ideal es tener el nombre del mes y en español, ya que por defecto en Mysql aparece la fecha en formato us.

El siguiente código fue implementado dentro de PHP y se puede implementar para sus programas:


$res=mysqli_query($enlace,"SET lc_time_names = 'es_ES';");
$res=mysqli_query($enlace,"SELECT id,titulo,DATE_FORMAT(fecha,'%M %d %Y') as fecha FROM blog order by id desc limit 3 ");

jueves, 19 de marzo de 2020

Cómo arreglar el problema de tildes al mostrar un contenido en tu web con Mysqli

Es normal que cuando estamos empezando a programar, subimos contenidos desde formularios y desde bases de datos. El problema es que algunas veces vemos que no configuramos apropiadamente las tíldes para que nuestra web las reconozca. La solución es la siguiente:

$conexion = mysql_connect($host,$user,$pass);
mysqli_set_charset($conexion, 'utf8'); 

miércoles, 4 de marzo de 2020

Como proteger tu web de SQL injection con Mysqli

Para mejorar la seguridad de tu sitio web, es recomendable tener prioridad en revisar las consultas sql, las cuales son vunerables en el momento de crear una web y eslo lo podemos hacer por PDO o por Mysqli, dependiendo de cual versión usamos en PHP. Lo más recomendable es dejar de usar Mysql ya que está en este momento obsoleto y ya no es tan seguro. Es necesario migrar a Mysqli.  A continuación podemos ver un ejemplo para que puedan ejecutar en localhost:

<?php
try {
    $conn = new mysqli('localhost', 'root', '','bd');

    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
    //MySQLi,
  class Usuario {
  public $id;
  public $fecha;
  public $titulo;

  public function info(){
//devolvemos resultados de estos campos de la tabla
    return '#' . $this->id . ': ' . $this->fecha . ' ' . $this->titulo;
  }
}
    $query = "SELECT * FROM tabla";
if ($result = $con->query($query)) {
  while ($user = $result->fetch_object('Usuario')) {
    echo $user->info() . "\n";
  }
}
// mysqli,
$query = $con->prepare('SELECT * FROM tabla WHERE id = ?');
$query->bind_param('s', $_GET['id']);
$query->execute();
 $result = $query->get_result();
    while ($row = $result->fetch_assoc()){
       //aquí se imprime los resultados de los campos seleccionados
    }
?>

Recomiendo visitar el artículo https://cursos.mejorcodigo.net/article/pdo-vs-mysqli-cuales-son-las-diferencias-37 en donde se aprendió a realizar este tipo de código para mejorar la seguridad en nuestras páginas web.

Enlace Relacionado

domingo, 1 de marzo de 2020

Cómo enviar por SQL un texto y conservar los saltos de línea

Dentro del código php  ponemos nl2br, el cual es un salto de línea para poder tomar los textos que enviamos por un formulario con los espacios que tiene este contenido. Para lograrlo hacemos lo siguiente:

 $texto=nl2br($_POST['texto']);  

Esto antes de hacer el insert en la base de datos SQL con la información que llenamos en el formulario del programa que hace el envío a este.

Recomiendo ver el manual https://www.php.net/manual/es/function.nl2br.php para ver más ejemplos del tema.

Enlaces recomendados

Autoincremento en Mysql para empezar a contar desde 1

La manera mas sencilla de hacer que el autoincremento en Mysql empiece desde uno es:

Truncate nombre_tabla

Para comenzar ocn el autoincremento en el número que queramos debemos ingresar por ejemplo

Alter Table nombre_tabla AUTOINCREMENT=10

Blogs Colombia