O problema é que a variável
$Q não contém um valor válido, provavelmente porque o valor passado em $station1 não existe no banco de dados. Eu teria pensado que o CI contraria isso usando pelo menos uma string entre aspas vazia, mas aparentemente não. Você precisa validar que
$Q mantém um valor sensível antes de passá-lo para where() . Por exemplo, outro num_rows() check lhe dirá se a primeira consulta encontrou alguma coisa. Além disso, você precisa passar os dados do campo de
$Q , não apenas o objeto. Então, no seu caso, $Q->row()->Zone .