Accedere alle API di Flickr con PHP
Martedì, 1 Luglio 2008
Carlo Daniele, sul suo blog, ha pubblicato un interessante post dove spiega come accedere alle API di Flickr con PHP.
Ecco il link: Come accedere alle API di flickr con Php (Prima parte)

Carlo Daniele, sul suo blog, ha pubblicato un interessante post dove spiega come accedere alle API di Flickr con PHP.
Ecco il link: Come accedere alle API di flickr con Php (Prima parte)
Vediamo come realizzare una delle cose più importanti in un sito dinamico, la paginazione dei dati. Di seguito un esempio di come realizzare una paginazione dei dati sfruttando la classe phpGotoMysql.
Il codice è commentato per essere di facile comprensione e potete scaricare i files dell’esempio.
<?php
//Includiamo la classe
include(”phpgotomysql.php”);
//Istanzio la classe
$db = new db();
//Imposto il numero di record per pagina
$record_per_pagina = 4;
//Ricevo il numero di pagina corrente altrimenti imposto 1
if (isset($_GET['pagina'])) $pagina = $_GET['pagina'];
else $pagina = 1;
// Mi connetto al database
$db->connect();
//Eseguo la query
$result=$db->query(”SELECT * FROM news ORDER BY id DESC”);
//Memorizzo il numero di record risultati dalla query
$numero_record = $db->counter();
//Calcolo il numero totale di pagine
$numero_pagine = ceil($numero_record / $record_per_pagina);
// Calcolo da quale record iniziare
$prima_pagina = ($pagina - 1) * $record_per_pagina;
// Recupero i record per la pagina corrente
// utilizzando LIMIT per partire da $prima_pagina e contare fino a $record_per_pagina
$result=$db->query(”SELECT * FROM news ORDER BY id DESC LIMIT $prima_pagina, $record_per_pagina”);
$numero_record = $db->counter();
//Se c’è almeno un record visualizzo i dati
if ($numero_record>0) {
for ($i=0;$i<$numero_record;$i++) {
$id = mysql_result($result,$i,”id”);
$titolo = mysql_result($result,$i,”titolo”);
$data = mysql_result($result,$i,”data”);
echo “<b>Data:</b> ” .$data .”<br>”;
echo “<b>Titolo:</b> ” .$titolo .”<br><br>”;
}
}
//Altrimenti segnalo che non ci sono news
else echo “Nessuna news presente.”;
//Se c’è più di una pagina visualizzo i link per andare avanti e indietro tra le pagine
if ($numero_pagine > 1){
if ($pagina > 1){
$page = $pagina-1;
echo “<a href=’paginazione_phpgotomysql.php?pagina=” .$page .”‘>Indietro</a> “;
}
if ($numero_pagine > $pagina){
$page = $pagina+1;
echo “<a href=’paginazione_phpgotomysql.php?pagina=” .$page .”‘>Avanti</a></td><td align=’left’>”;
}
}
// Chiudo la connessione ad DB
$db->close();
?>
|
|
download: Paginazione dei dati con phpGotoMySQL (2.09KB) added: 28/06/2008 clicks: 41 description: Esempio su come realizzare una paginazione dei dati sfruttando la classe phpGotoMySQL |
Per trasferire il contenuto di un array da PHP a Flash la tecnica è molto semplice. Nel file PHP stampiamo il contenuto dell’array nel seguente modo:
<?php
$dati[0]=”Primo”;
$dati[1]=”Secondo”;
$dati[2]=”Terzo”;
$dati[3]=”Quarto”;
$numero_elementi = count($dati);
echo “&numero_elementi=” .$numero_elementi;
for ($i=0;$i<$numero_elementi;$i++)
echo “&dati_” .$i .”=” .$dati[$i];
?>
L’output del file sarà il seguente:
&numero_elementi=4&dati_0=Primo&dati_1=Secondo
&dati_2=Terzo&dati_3=Quarto
Adesso, in Flash, riceviamo le variabili utilizzando la classe loadVars (Abbiamo visto l’utilizzo della classe loadVars in questo articolo).
Dichiariamo le variabili:
var dati = new Array();
var numero_elementi:Number;
var i:Number;
Dopodichè costruiamo un ciclo for che ci permetterà di leggere le variabili:
numero_elementi = this['numero_elementi'];
for (i=0;i<numero_elementi;i++)
dati[i] = this['dati_' + i];
Dopo aver letto la variabile “numero_elementi” che ci indica la lunghezza dell’array, con il ciclo for concateniamo il nome variabile “dati_” con l’indice dell’array in modo da poter accedere alle variabili dati_0, dati_1 ecc.
A questo punto abbiamo ricevuto nell’array dati (Flash) il contenuto dell’array $dati (PHP).
ICTv ha pubblicato di recente due video interessanti che vi consiglio:
Le logiche e gli strumenti del Web 2.0 applicati ai contesti aziendali, dove la collaborazione e la comunicazione on-line si possono tradurre in incremento della produttività e risparmio di tempo.
Magento è una nuova piattaforma per l’e-commerce che offre diverse soluzioni raramente integrate su applicazioni più blasonate quali Zen Cart, osCommerce o VirtueMart.
Nel tutorial di oggi vedremo come realizzare un menu dinamico in Flash e PHP.

Per prima cosa realizzeremo, in Flash, un primo livello dove inserire una MovieClip con nome di istanza “menu“.
All’interno di questa MovieClip ne realizzeremo un’altra con nome di istanza “sfondo“. Colorando quest’ultima MovieClip daremo il colore al nostro menu.
Su un livello superiore inseriremo 4 campi di testo con nome di istanza “titolo“, “link1“, “link2” e “link3“. Il primo conterrà il titolo del menu e gli altri tre le voci che comporranno il nostro menu.
Rendiamo i campi di testo HTML…
..e se vogliamo usare un font particolare incorporiamo i caratteri necessari.
Su un livello superiore inseriremo tre aree attive a cui daremo nome di istanza “tasto1“, “tasto2” e “tasto3” (che fantasia
).
A queste tre aree attive corrisponderanno tre link a tre url o pagine web.
A questo punto analizziamo il file di configurazione del menu realizzato in PHP:
<?php
//Titolo del menu
$titolo = “MENU”;
//Colori
$menu_color = “0×336699″;
$title_color = “0xFFFF00″;
$links_color = “0xFFFFFF”;
//Labels delle voci del menu
$label1 = “Home”;
$label2 = “Feed RSS”;
$label3 = “Contattami”;
//Links da associare alla voci del menu
$link1 = “http://www.emawebdesign.com”;
$link2 = “http://feeds.feedburner.com/emawebdesign”;
$link3 = “http://www.emawebdesign.com/contattami”;
echo “&titolo=” .$titolo;
echo “&menu_color=” .$menu_color;
echo “&title_color=” .$title_color;
echo “&links_color=” .$links_color;
echo “&label1=” .$label1;
echo “&label2=” .$label2;
echo “&label3=” .$label3;
echo “&link1=” .$link1;
echo “&link2=” .$link2;
echo “&link3=” .$link3;
?>
Dopo aver settato tutte le variabili a nostro piacimento, verranno inviate al Flash con il comando echo scrivendo la variabile nella forma &variabile=contenuto.
Possiamo adesso inserire nel Flash un ulteriore livello dove inseriremo (sul fotogramma) il seguente codice ActionScript:
var loadData = new LoadVars();
loadData.onLoad = function (success) {
if (success) {
titolo.htmlText = this['titolo'];
_global.menu_color = this['menu_color'];
_global.title_color = this['title_color'];
_global.links_color = this['links_color'];
link1.htmlText = this['label1'];
link2.htmlText = this['label2'];
link3.htmlText = this['label3'];
_global.url1 = this['link1'];
_global.url2 = this['link2'];
_global.url3 = this['link3'];
var my_color:Color = new Color(menu.sfondo);
my_color.setRGB(_global.menu_color);
var text_format:TextFormat = new TextFormat();
text_format.color = _global.title_color;
titolo.setTextFormat(text_format);
var text_format2:TextFormat = new TextFormat();
text_format2.color = _global.links_color;
link1.setTextFormat(text_format2);
link2.setTextFormat(text_format2);
link3.setTextFormat(text_format2);
} else {
trace(”Load error!”);
}
}
loadData.load(”menu_config.php”);
tasto1.onRelease = function() {
getURL(_global.url1);
}
tasto2.onRelease = function() {
getURL(_global.url2);
}
tasto3.onRelease = function() {
getURL(_global.url3);
}
Con la funzione LoadVars caricheremo dal file PHP menu_config.php tutte le variabili e le riceveremo nel Flash nella forma variabile = this['variabile_caricata']; Con la funzione setRGB coloreremo il menu e con setTextFormat i campi di testo.
A questo punto, per completare i pulsanti, possiamo associare ad ogni istanza il comando getURL che punterà alla URL contenuta nella rispettiva variabile.
Scarica il file di esempio e prova a modificarlo. Se hai domande commenta il post o non esitare a contattarmi. Al prossimo tutorial!
|
|
download: MenuDinamicoFlash (6.41KB) added: 01/06/2008 clicks: 62 description: Menu dinamico in Flash |
phpGotoMysql è una classe che ho scritto in php e che consente l’interazione col database MySQL. L’utilizzo è semplice e gratuito, continuando a leggere troverete tutte le informazioni dalla licenza alla documentazione.
Licenza
La licenza è la Creative Commons 2.5 e se scaricate ed utilizzate la classe significa che avete dato il vostro assenso alle seguenti condizioni d’uso:
Versione: 1.0
|
|
download: phpGotoMySQL (1.17KB) added: 08/05/2008 clicks: 55 description: phpGotoMySQL |
Documentazione
Per settare la classe bisogna scrivere i parametri del database mysql, eccone un esempio:
var $db_host = “localhost”;
var $db_user = “root”;
var $db_pwd = “miapassword”;
var $db_name = “utenti”;
La variabile $db_host contiene l’indirizzo IP di MySQL mentre $db_user e $db_pwd l’username e la password di accesso. Infine la variabile $db_name contiene il nome del database che si andrà a utilizzare.
Per utilizzare la classe basta includerla nei file php dove si intende utilizzarla e creare una nuova istanza:
<?php
include(”phpGotoMysql.php”);
$db = new db();
?>
La funzione connect apre una connessione al database.
Utilizzo:
$db->connect();
La funzione pconnect apre una connessione persistente al database.
Utilizzo:
$db->pconnect();
La funzione close chiude la connessione al database.
Utilizzo:
$db->close();
La funzione query esegue una query di tipo select.
Utilizzo:
$db->query(”SELECT * FROM utenti”);
La funzione db_query esegue una query di tipo insert / update / delete.
Utilizzo:
$db->db_query(”DELETE FROM utenti WHERE id=1″);
La funzione counter restituisce il numero di record interessati da una query di tipo select (non funziona con insert, update e delete).
Utilizzo:
$db->query(”SELECT * FROM utenti”);
$num=$db->counter();
echo “Record interessati: ” .$num;
rows_count
La funzione rows_count restituisce il numero di record interessati da una query di tipo insert, update o delete (non funziona con select).
Utilizzo:
$query = “UPDATE utenti SET pwd=’test’ WHERE username=’test’”;
$db->db_query($query);
$num_rec = $db->rows_count($query);
La funzione encoding restituisce il nome del set di caratteri del database.
Utilizzo:
$encoding = $db->encoding();
La funzione db_info visualizza a video le informazioni sul client MySQL in uso.
Utilizzo:
$db->db_info();
La funzione last restituisce l’ultimo ID generato da una query di tipo INSERT.
Utilizzo:
$db->db_query(”INSERT INTO utenti (username,pwd) VALUES (’test’,'test’)”);
$id=$db->last();
La funzione db_list restituisce un array contenente i nomi dei database presenti in MySQL.
Utilizzo:
$lista_db = $db->db_list();
echo “DB1: ” .$lista_db[0] .”<br>”;
echo “DB2: ” .$lista_db[1] .”<br>”;
La funzione num_fields restituisce il numero dei campi presenti nella tabella specificata.
Utilizzo:
$num=$db->num_fields(”utenti”);
La funzione name_fields restituisce un array contenente i nomi dei campi di una tabella specificata.
Utilizzo:
$num=$db->name_fields(”utenti”);
for($i=0;$i<count($num);$i++)
echo “Nome: ” .$num[$i] .”<br>”;
La funzione tables restituisce un array contenente i nomi delle tabelle presenti nel database.
Utilizzo:
$nomi=$db->tables();
for($i=0;$i<count($nomi);$i++)
echo “Nome: ” .$nomi[$i] .”<br>”;
Per ottenere i campi in un risultato combinare le funzioni query e counter. Ecco un esempio:
$result=$db->query(”SELECT * FROM utenti”);
$num_rec = $db->counter();
for ($i=0;$i<$num_rec;$i++)
echo mysql_result($result,$i,”username”);
Ecco un esempio su come realizzare una paginazione dei dati sfruttando la classe phpGotoMysql.
Se hai trovato utile questa classe prendi in considerazione la possibilità di effettuare una donazione per contribuire al suo supporto e aggiornamento.
Con questo semplice script php vedremo come ottenere i nomi dei database presenti nel nostro MySQL.
<?php
// Parametri di connessione a MySQL: Host, Username e Password
$host = “”;
$user = “”;
$pwd = “”;
// Connessione a MySQL
mysql_connect($host, $user, $pwd);
// Ricaviamo i database disponibili in MySQL in un risultato puntatore
$lista = mysql_list_dbs();
// Ricaviamo il numero dei database
$num = mysql_num_rows($lista);
echo “Numero di database trovati in MySQL: ” .$num .”<br><br>”;
// Infine costruiamo un ciclo iterativo e tramite mysql_db_name (con il puntatore $lista) ricaviamo i nomi dei database
$i = 0;
while ($i < $num) {
$db = mysql_db_name($lista, $i);
echo “Database numero ” .($i+1) .”: ” .$db .”<br>”;
$i++;
}
mysql_close();
?>