fork download
  1. <?php
  2.  
  3. function listaEnderecos($conexao, $filtro, $ordem, $usuario) {
  4. $enderecos = array();
  5. $sql = "select enderecos.*, us.email, cidades.nomecidade
  6. from enderecos
  7. inner join usuarios us on enderecos.idusuario = us.id
  8. inner join cidades on cidades.id = enderecos.idcidade
  9. where us.email = {$usuario}";
  10.  
  11. if ($filtro <> "") {
  12. $sql = $sql ." where enderecos.idcidade like '%{$filtro}%'";
  13. }
  14.  
  15. if ($ordem <> "") {
  16. $sql = $sql ." order by {$ordem}";
  17. }
  18.  
  19. echo PHP_EOL.'Gerada: '.PHP_EOL. $sql;
  20. /*
  21. $resultado = mysqli_query($conexao, $sql );
  22.  
  23. while ($endereco = mysqli_fetch_assoc($resultado)) {
  24. array_push($enderecos, $endereco);
  25. }
  26. return $enderecos;
  27. */
  28. }
  29.  
  30. function listaEnderecosCorrigida($conexao, $filtro, $ordem, $usuario) {
  31. $enderecos = array();
  32. $sql = "select enderecos.*, us.email, cidades.nomecidade
  33. from enderecos
  34. inner join usuarios us on enderecos.idusuario = us.id
  35. inner join cidades on cidades.id = enderecos.idcidade
  36. where us.email = {$usuario}";
  37.  
  38. if ($filtro <> "") {
  39. $sql = $sql ." AND enderecos.idcidade like '%{$filtro}%'";
  40. }
  41.  
  42. if ($ordem <> "") {
  43. $sql = $sql ." order by {$ordem}";
  44. }
  45.  
  46. echo PHP_EOL.'Gerada: '.PHP_EOL. $sql;
  47. /*
  48. $resultado = mysqli_query($conexao, $sql );
  49.  
  50. while ($endereco = mysqli_fetch_assoc($resultado)) {
  51. array_push($enderecos, $endereco);
  52. }
  53. return $enderecos;
  54. */
  55. }
  56.  
  57.  
  58. //Caso do erro:
  59. listaEnderecos(null, 'abc', null, 'usuario teste');
  60.  
  61. //Caso onde o erro ficou oculto
  62. listaEnderecos(null, null, null, 'usuario teste');
  63.  
  64. //Função corrigida
  65. listaEnderecosCorrigida('null', 'filtro_', null, 'usuario teste');
Success #stdin #stdout 0.02s 24400KB
stdin
Standard input is empty
stdout
Gerada: 
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 teste where enderecos.idcidade like '%abc%'
Gerada: 
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 teste
Gerada: 
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 teste AND enderecos.idcidade like '%filtro_%'