Mail: orangedropdesign@gmail.com / Mobile: +39 338.6213493

Tutorial di codice PHP per principianti

Un array dei valori di una colonna ENUM in una funzione PHP

Succede di dover lavorare con gli enum dei database in MySQL. Capita che questi valori debbano essere inseriti in un menu a tendina di un form.

La cosa più facile del mondo è utilizzare la funzione foreach di PHP che permette di elencare i valori dell’array e quindi avere un select dinamico che, al cambiare dell’array, aggiunge tutti i suoi valori al menù a tendina.

Capita anche che questi valori cambino nel tempo e quindi si devono cambiare i valori della tendina.

Dopo qualche tentativo ho creato una semplice funzione che, dati in pasto nome della tabella del database e il nome della colonna di tipo enum ecco che restituisce l’array dei valori possibile per quella colonna stessa.

Cominciamo dalla connessione al database:

<?php

$dbname = "nomedatabase";
$dbuser = "userdatabse";
$dbpssw = "passworddatabase";
$dbhost = "hostdatabase";

$dbconn = mysql_connect($dbhost, $dbuser, $dbpssw);

if ($dbconn == false) exit ("Errore nella connessione. Verificare i parametri nel file config.php");

if (mysql_select_db($dbname) == false) exit ("Errore nella selezione del database. Verificare i parametri nel file config.php");

?>

Quindi ecco la nostra funzione:

<?php

function enum2array($tab, $col, $dbconn){

$query = "SHOW COLUMNS FROM $tab LIKE '$col'";

$result = mysql_query($query, $dbconn);
$row = mysql_fetch_array($result);
$var = explode("','",substr($row['Type'],6,-2));

return $var;

}

$valori = enum2array('esperto', 'tipouser', $dbconn);

?>

E quindi stampiamo i possibili valori del nostro enum:

<?php

print_r($valori);

?>

Fate attenzione al fatto che dovete passare alla funzione al il parametro della connessione al database.

Lascia una risposta