Corsi on-line

Estrazioni multiple di immagini da MySQL

Dopo la pubblicazione dell’articolo dedicato alla procedura necessaria per “Estrarre immagini da un database MySQL senza errori”, alcuni utenti del Blog mi hanno inviato delle segnalazioni chiedendo se fosse possibile apportare delle modifiche al sorgente, in modo che l’applicazione proposta permettesse di estrarre più immagini da una tabella rendendole visibili all’interno di una singola pagina.

Per le modifiche richieste utilizzerò la stessa struttura presentata in precedenza e PDO sarà anche questa volta la libreria impiegata per l’interazione con il Database engine; il file “cfg.php” conterrà però soltanto il codice necessario per effettuare la connessione alla base di dati:

$cn = new PDO('mysql:host=localhost;dbname=nome_db', '***', '***');

Dato che parliamo di estrazioni multiple, il file “img.php” si occuperà di effettuare la selezione di tutte le immagini contenute in tabella attraverso il passaggio di una variabile inviata attraverso il metodo GET:

if(isset($_GET['id'])&& is_numeric($_GET['id']))
{
$img_id = $_GET['id'];
include 'cfg.php';
$sql = $cn->prepare("SELECT img FROM schedario WHERE id = :img_id");
$sql->bindParam(':img_id', $img_id, PDO::PARAM_INT);
$sql->execute();
$result = $sql->fetch(PDO::FETCH_ASSOC);
header('Content-Type: image/jpeg');
echo $result['img'];
}

Tale variabile verrà recuperata attraverso un ciclo While che estrarrà ad ogni sua iterazione l’identificativo univoco da passare a “img.php” per la visualizzazione dell’immagine; per cui “index.php” potrà essere modificato in questo modo:

include 'cfg.php';
foreach ($cn->query("SELECT * FROM schedario") as $row)
{
echo '<img src=\'img.php?id='.$row['id'].'\'><br />';
echo $row['nome'] . ' - ' . $row['cognome'] . '<br />';
}

Quest’ultimo risulterà sostanzialmente semplificato rispetto all’originale, infatti, non dovendo passare parametri ad una clausola WHERE in SELECT, non vi sarà bisogno di utilizzare prepared statements.

Post correlati
I più letti del mese
Tematiche