Problema para resolver consulta a MySql PHP if, else, echo,

Tengo esta tabla en MySql con fechas No disponibles y horas No disponibles en la agenda de un doctor. Al hacer una consulta debo mostrar los horarios que si se encuentran disponibles y bloquear los que no están diponibles.

  • id | id_doc | fecha | hora |
  • 1 | 4 | 24-07-2019 | 8:00 |
  • 1 | 4 | 24-07-2019 | 9:00 |
  • 1 | 4 | 24-07-2019 | 10:00 |
  • 1 | 4 | 24-07-2019 | 11:00 |

Si utilizo un if(empty(variable)){echo}else{echo} solo me está mostrando el segundo echo, en el primero no arroja ningún resultado. Cuando le pregunto por una fecha que no está en la base de datos, por ejemplo si pregunto para el día 30, que no existe en la tabla, no me arroja nada

No me quiero encerrar solo en esta opción, si alguien me pudiera ayudar con algo de logística o corregir el error en mi código bienvenido será!!!

                        <?php                                  $  id_doc=$  _POST['id'];                                 $  datos=$  _POST['datos'];                                  $  res=("SELECT * FROM reservas WHERE (fecha = '$  datos') and (id_doc = '$  id_doc') ");                                 $  reserva = mysqli_query($  con,$  res) or mysqli_error($  con);                                 while($  horas = mysqli_fetch_array($  reserva)) {                                 if (empty($  horas['fecha'])){ echo '8:00','9:00','10:00','11:00';}else{echo $  horas['hora'];}                                      }  ?>