la data in mysql viene memorizzata in effetti in formato americano, cioè come hai detto tu anno-mese-anno. Ma con in mezzo il trattino, non il / ricordalo..
Se quindi chiedi una data in formato giorno-mese-anno puoi fare come hai fatto tu con explode o ancora meglio con la funzione date (http://it2.php.net/manual/en/function.date.php) :

Codice PHP:
$INIdata explode("/",$_POST['data_inizio']);//data presa dal form inviato 
$INIgiorno int($INIdata[0]);//questo dovrebbe essere il giorno (1); 
$INImese int($INIdata[1]);//questo il mese (12); 
$INIanno int($INIdata[2]);//questo l'anno (2008); 
$MYSQLdata date("Y-m-d"mktime(000$INImese$INIgiorno$INIanno));// scriverà 2008-12-01 
la funzione MKTIME (http://it2.php.net/manual/en/function.mktime.php) rappresenta una dtaa in formato unix e unita a DATE puoi formattarla come meglio ti pare. Anzi, le due funzioni insieme ti permettono di fare calcoli su date, ad esempio

Codice PHP:
<?php
echo mktime(000date("m")  , date("d")+1date("Y"));// visualizza il giorno domani
echo mktime(000date("m")-1date("d"),   date("Y"));// visualizza la data di un mese fa
echo mktime(000date("m"),   date("d"),   date("Y")+1);// visualizza la data fra un anno
?>

IL metodo che scrivi per ottenere le disponibilitàò un buon mezzo ma forse è meglio confrontare due date. Avendo a disposizione $INIdata e $FINdata puoi scrivere

Codice PHP:
$query="SELECT date FROM prenotazioni WHERE date>='$INIdata' AND date <='$FINdata'"
come risultato avrai un array con tutte le date comrpese fra quelle due.