veramente OPTGROUP non so neanche che sia...
cmq, in $my_data non devi mettere niente e per chiudere OPTGROUP correggi così

codice:
$sql = "SELECT id, titolo, testo, DATE_FORMAT(data, '%d-%m%-%y') FROM tabella ORDER BY data";
$result = mysql_query($sql) or die(mysql_error());
echo "<select name=\"page\">";
$my_data = '';
while(list($id, $titolo, $testo, $data)=mysql_fetch_row($result)) {
     if($data != $my_data && $my_data != '') {
             echo "</optgroup>
                   <optgroup label='{$my_data}'>\n"; 
             $my_data = $data;
     } else if($data != $my_data) {
             echo "<optgroup label='{$my_data}'>\n"; 
             $my_data = $data;
     }
     echo "<option value=\"$id\">$titolo</<option>"; 
}
echo " </optgroup>
      </select>";