<?php 

function listaEnderecos($conexao, $filtro, $ordem, $usuario) {
	$enderecos = array();
	$sql = "select enderecos.*, us.email, cidades.nomecidade
			from enderecos
			inner join usuarios us on enderecos.idusuario = us.id
			inner join cidades on cidades.id =  enderecos.idcidade
			where us.email = {$usuario}";
	
	if ($filtro <> "") {
		$sql = $sql ." where enderecos.idcidade like '%{$filtro}%'";
	}
	
	if ($ordem <> "") {
		$sql = $sql ." order by {$ordem}";
	}
	
	echo PHP_EOL.'Gerada: '.PHP_EOL. $sql;
	/* 
	$resultado = mysqli_query($conexao, $sql );

	while ($endereco = mysqli_fetch_assoc($resultado)) {
		array_push($enderecos, $endereco);
	}
	return $enderecos;
	*/
}

function listaEnderecosCorrigida($conexao, $filtro, $ordem, $usuario) {
	$enderecos = array();
	$sql = "select enderecos.*, us.email, cidades.nomecidade
	from enderecos
	inner join usuarios us on enderecos.idusuario = us.id
	inner join cidades on cidades.id =  enderecos.idcidade
	where us.email = {$usuario}";

	if ($filtro <> "") {
	$sql = $sql ." AND enderecos.idcidade like '%{$filtro}%'";
	}

	if ($ordem <> "") {
	$sql = $sql ." order by {$ordem}";
	}

	echo PHP_EOL.'Gerada: '.PHP_EOL. $sql;
	/*
	$resultado = mysqli_query($conexao, $sql );

	while ($endereco = mysqli_fetch_assoc($resultado)) {
	array_push($enderecos, $endereco);
	}
	return $enderecos;
	*/
	}


//Caso do erro:
listaEnderecos(null, 'abc', null, 'usuario teste');

//Caso onde o erro ficou oculto
listaEnderecos(null, null, null, 'usuario teste');

//Função corrigida
listaEnderecosCorrigida('null', 'filtro_', null, 'usuario teste');