Si tenemos en una tabla un campo para fecha y otro para hora:
y cambiamos el tipo de fecha de date a datetime todas las horas se quedan como 00:00:00
actualizamos el valor con la sentencia;:
UPDATE tabla
SET fecha = CONCAT_WS(‘ ‘,date(fecha),hora)
Normalmente las oposiciones vuelcan las notas en un pdf, pasamos los datos a un ficheros de texto
y separamos las columnas mediante algún delimitador como ;
abrimos el excel e importamos los datos
Indicando que el delimitador es:
Una vez que tenemos los 2 ficheros de texto vamos a juntar las notas:
sobre el primer fichero pegamos los datos de la segunda tabla
Y utilizamos la funcion BUSCARV
poniendo como parametros, la celda a buscar, el rango donde va a buscar ( utilizamos $ para bloquear las filas), la columna, que dentro del rango es la 3 y falso para que la busqueda sea exacta.
Una vez la hemos puesto, la arrastramos sobre todas las filas de la columna y tenemos juntas las 2 notas en un solo fichero
ahora solo nos quedaria quitar los alumnos que no han aprobado el segundo examen y sumar las dos notas
Hay que tener en cuenta que son formulas y si queremos quitar los datos auxiliares desaparecen los datos calculados por lo que se recomienda añadir una columna al lado de la calculada y pegar “solo los valores” para poder posteriormente eliminar la columna calculada
Si despues de tener una tabla queremos añadir una columna para indicar un orden, podemos actualizarla tabla usando update con inner join
UPDATE
tabla YT
INNER JOIN
(SELECT
id,
@rowNumber := @rowNumber + 1 AS rn
FROM tabla , (SELECT @rowNumber := 0) var
where campofiltro=4
ORDER BY id ASC
) AS t
ON YT.id = t.id
SET YT.nuevacolumna = t.rn where campofiltro=4
Si tenemos una tienda con combinacion de productos, cada uno de ellos puede tener asociada una o mas imagenes
si elegimos una en concreto con combinacion, al añadir al carrito muestra la foto del producto por defecto
Para solucionarlo hay que cambiar un par de templates y añadir unas funciones a la clase producto.
en Product.php
public static function getProducImage($id_product_attribute,$id_product) { if (isset($id_product_attribute) && $id_product_attribute) { $id_image = Db::getInstance()->getValue(' SELECT `image_shop`.id_image FROM `'._DB_PREFIX_.'product_attribute_image` pai'. Shop::addSqlAssociation('image', 'pai', true).' LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_image` = pai.`id_image`) WHERE id_product_attribute = '.(int)$id_product_attribute. ' ORDER by i.position ASC'); } if (!isset($id_image) || !$id_image) { $id_image = Db::getInstance()->getValue(' SELECT `image_shop`.id_image FROM `'._DB_PREFIX_.'image` i'. Shop::addSqlAssociation('image', 'i', true, 'image_shop.cover=1').' WHERE i.id_product = '.(int)$id_product ); } return $id_image; } public static function getProducImageUrl($id_product_attribute,$id_product) { if (isset($id_product_attribute) && $id_product_attribute) { $id_image = Db::getInstance()->getValue(' SELECT `image_shop`.id_image FROM `'._DB_PREFIX_.'product_attribute_image` pai'. Shop::addSqlAssociation('image', 'pai', true).' LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_image` = pai.`id_image`) WHERE id_product_attribute = '.(int)$id_product_attribute. ' ORDER by i.position ASC'); } if ($id_image!=""){ $aux=str_split($id_image); $salida="img/p/"; foreach($aux as $n){ $salida.=$n."/"; } $salida.=$id_image.".jpg"; return $salida; }else{ return ""; } }
en templated/checkout/_partials/cart-detailed-product-line.tpl
Tenia un archivo de +500mb de texto ( un sql para ser exacto ) , y quería eliminar 4 millones de lineas, para ser exacto entre la 80.079 y la 4.130.924 de los más de 10 millones que tenia el archivo.
Al intentar abrir el archivo con programas como Visual Studio Code o Sublime text ( trabajando en MAC ) , tardaba mas de 2 minutos en abrir el fichero y luego era inviable intentar seleccionar con el ratón todas las lineas para eliminar.
El terminal llega al rescate, utilizando la herramienta “sed” en menos de 10 segundos el fichero baja hasta los 288mb
Al final con un par de pasadas el fichero termina con menos de 60mb
Para capturar trazas de Android lo primero es tener instaladas las herramientas platform-tools que vienen con el sdk
Abrimos un terminal y con el telefono conectado ( y habilitadas las herramientas de desarrollador ) para permitir la depuracion miramos si aparece el dispositivo conectado:
adb devices
Para empezar a capturar trazas: adb logcat
Si queremos filtrar para que solo nos aparezcan los de un paquete
Para añadir al lado de la informacion del post, el numero de visitas que tiene ( tal y como se hace en este blog ) hay que modificar el fichero content.php