La funzione cerca sul database i santi del giorno passato come parametro. La tabella dei santi è stata generata da un file ics disponibile a questo indirizzo. La tabella sql generata, grazie ad un ciclo php ( che purtroppo ho perso ), è disponibile qui.
Posto la pagina completa commentata.
<?php
// se non ricevo il giorno dal form imposto quello attuale
$giorno = isset($_POST['giorno']) && is_numeric($_POST['giorno']) ? $_POST['giorno'] : date('d');
// se non ricevo il mese dal form imposto quello attuale
$mese = isset($_POST['mese']) && is_numeric($_POST['mese']) ? $_POST['mese'] : date('m');
// array con i nomi dei mesi in italiano
$mesi = array(1, 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto',
'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
// dichiaro la funzione
function santo_del_giorno($giorno, $mese) {
// verifico la data
if (!checkdate($mese, $giorno, date("Y"))) {
// data non valida esco
return "non è una data valida!";
}
// mi connetto al database
$sql = new mysqli("localhost", "root", "password", "database");
// query sulla tabella dei santi
$query = "SELECT santi FROM tutti_santi WHERE giorno = $giorno && mese = $mese";
// esecuzione della query
$result = $sql->query($query);
// se non ci sono errori
if ($result) {
// estraggo e restituisco il risultato
$row = $result->fetch_assoc();
return " si festeggia<br/>" . $row["santi"];
}
// chiudo la connessione
$sql->close();
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Il
<select name="giorno" onchange="this.form.submit()">
<?php
for ($i = 1; $i < 32; $i++) {
$i = str_pad($i, 2, '0', STR_PAD_LEFT);
echo "<option value='$i'";
if ($giorno == $i)
echo " selected='selected'";
echo ">$i</option>
";
}
?>
</select>
<select name="mese" onchange="this.form.submit()">
<?php
for ($x = 1; $x < 13; $x++) {
$xx = str_pad($x, 2, '0', STR_PAD_LEFT);
echo "<option value='$xx'";
if ($mese == $x) {
echo " selected='selected'";
}
echo ">$mesi[$x]</option>
";
}
?>
</select>
</form>
<?php
$santi_del_giorno = santo_del_giorno($giorno, $mese);
echo $santi_del_giorno;