Zredukowałbym to do następujących:
SELECT * FROM `booking`
WHERE Table='$i' AND NOT(Comming >= '$GuestDepature' OR Depature <= '$GuestComming')
Wynik zapytania powinien być pusty, jeśli tabela jest zrezerwowana. Nie wiem, jak działa pole „odchodHosta”.
//Aktualizuj SQL — dodano NIE