Blupixel IT Blog – Articoli e Tutorial Informatica e Programmazione

Blog ufficiale di Blupixel IT Srl

Selezionare doppioni e duplicati in PostgreSQL mediante l’utilizzo di una query con opzione EXCEPT e DISTINCT ON

PostgreSQL permette l’utilizzo dell’utilissima funzione DISTINCT per selezionare le righe differenti rispetto ad un campo.
Ma come fare per selezionare le righe uguali indipendentemente dalla conoscenza del contenuto del campo?

Vediamo una soluzione:

Supponiamo di avere una tabella anagrafica con persone iscritte più volte utilizzando ad esempio lo stesso numero di telefono.

Vogliamo sapere quali sono le persone duplicate attraverso la conoscenza di questa unica condizione: Le persone duplicate nel databse hanno lo stesso numero di telefono nel campo telefono_1

A questo punto, volessimo selezionare solo le righe senza doppioni nel numero di telefono potremmo semplicemente eseguire la query:

SELECT DISTINCT ON (telefono_1) * FROM anagrafica

In questo modo selezioneremmo dalla tabella anagrafica tutti i campi di tutte le righe i cui numeri di telefono sono diversi.

Volendo invece prendere tutti i campi di tutte le righe con lo stesso numero di telefono dovremo fare:

SELECT * FROM anagrafica EXCEPT SELECT DISTINCT ON (telefono_1) * FROM anagrafica

Con questo comando, infatti, selezioneremo tutte le righe dell’anagrafica ESCLUDENDO (EXCEPT) quelle che contengono numeri di telefono distinti. Quindi selezioneremo solo i doppioni!

Decidendo un ordinamento con l’aggiunta di “ORDER BY …” potremo anche decidere se selezionare come doppione il primo inserito oppure l’ultimo

Alla prossima

Sfondo CSS trasparente cross compatibile con PHP

Per creare uno sfondo trasparente che sia compatibile con tutti i browser è necessario usare come background un url con un immagine trasparente di un pixel ripetuta verticalmente ed orizzontalmente.

Per non dover rifare l’immagine del pixel tutte le volte possiamo usare uno script php che lo crei in automatico a partire da alcuni paramteri passatigli.

Prendere il file qui sotto, salvarlo con un nome tipo pixelBgCreator.php ed inserirlo in un path a scelta del sito, che sia raggiungibile.
 

<?php

$my_img = imagecreate( 1, 1 );
imagecolorallocatealpha( $my_img, $_GET['R'], $_GET['G'], $_GET['B'], (int) (1 - $_GET['T']*127) );

header( "Content-type: image/png" );
imagepng( $my_img );

?>

 

Quindi per aggiungere uno sfondo nero trasparente all’elemento con id page sarà sufficiente usare:

#page{
background: url(PATH_DELLO_SCRIPT/pixelBgCreator.php?R=0&G=0&B=0&T=0.7) repeat top left;
background: rgba(0,0,0,0.7);
}

 

Sostituendo il numero nei valori R (Rosso), G (Verde) e B (Blu) ed impostando la trasparenza nel valore T (Trasparenza) verrà ritornato in automatico un pixel del colore e trasparenza scelti.
Aggiungendo dopo lo stesso background con il metodo standard (background: rgba(0,0,0,0.7)) permettiamo ai browser più recenti di evitare di prendere l’immagine e di creasela da soli.

A presto

Test cross browser Explorer 6 – 7 – 8

Chi di voi ha lavorato con la grafica web si sarà sicuramente imbattuto in problemi di visualizzazione tra le molteplici versioni dei browser.
Explorer, Firefox, Google Chrome, Safari sono i browser più diffusi e quelli per cui solitamente viene richiesta una perfetta visualizzazione delle pagine.
Il problema nasce quando ci si deve confrontare con vecchie versioni di Explorer, dal momento che il sistema Microsoft prevede una sola versione del browser installata.
In aiuto di noi sviluppatori ci sono diversi software (a pagamento) che rispondono a questa necessità, ma quella che vi andiamo a presentare è una soluzione gratuita e poco conosciuta (che ci viene fornita direttamente da Microsoft), si tratta di una serie di VHD (dischi virtuali) contenenti tutti gli ultimi sistemi operativi con relative versioni di Internet Explorer.

Il funzionamento è molto semplice ed intuitivo e l’unico costo che andrete ad affrontare sarà qualche gb in meno nel vostro hard disk, ecco il link per accedere alle risorse:

link download dischi virtuali VHD

Una volta che avrete effettuato il download dei dischi virtuali dovrete procedere allo scaricamento del software necessario al loro avvio reperibile al seguente indirizzo:

link download Virtual PC

A questo punto vi basterà scompattare le immagini nella cartella:
c:\Users\*vostro nome utente*\Virtual Machines
e lanciare la macchina virtuale con un doppio click sul relativo file.

In questo modo il disco virtuale verrà avviato con le impostazioni predefinite, se al contrario volete personalizzare la macchina virtuale impostando un quantitativo di memoria ram dedicato differente oppure il supporto a dispositivi di rete (LAN, WIFI) potete procedere manualmente cliccando sulla voce: Crea macchina virtuale (vedi immagine).

virtualPc

Particolare attenzione va prestata a quanto scritto nelle note presenti in calce alla pagina di download che per comodità vi traduciamo in italiano:

La password per accedere a tutte queste immagini è Password1 mentre il nome utente sarà mostrato al momento del login.

* Nota: in seguito all’avvio di Windows 7 o Windows Vista verrà richiesta l’attivazione del prodotto. È possibile annullare la richiesta per accedere al desktop e poter utilizzare il sistema operativo per un periodi di prova di 30 giorni. È possibile attivare fino a due “rearms” (digitare slmgr-rearm nel prompt dei comandi) che estendono il periodo di prova per altri 30 giorni in alternativa basta semplicemente effettuare un shutdown dell’immagine VPC ed eliminare le modifiche apportate per ripristinare l’immagine al suo stato iniziale. Facendo uno di questi metodi, è possibile tecnicamente avere una immagine di base che non scade mai, anche se non si sarà mai in grado di salvare in modo permanente tutte le modifiche su queste immagini per più di 90 giorni.

Un buon download a tutti.