Fórum Mistério na query: No aplicativo não roda, mas direto no SQL do BD está 100%. #592408
12/04/2018
0
Bem, tenho a seguinte query que roda direitinho direto no BD:
SELECT * FROM grupos, clientes, eventos WHERE gp_id = 9 AND clt_id = 10 AND gp_id_resp = 10 AND evento_id = 5
Já a query abaixo, que está na aplicação, não retorna valor algum:
SELECT * FROM grupos, clientes, eventos WHERE gp_id = idGrupo AND clt_id = idCliente AND gp_id_resp = idCliente AND evento_id = idEvento
Sendo, as 2 de mesma sintaxe, por que não consigo fazer rodar na aplicação? Onde está o erro!?
Obrigado desde já!
Myller Meireles
Curtir tópico
+ 0Posts
12/04/2018
Myller Meireles
Esse é o código que está na aplicação:
$idEvento_Listar_Grupos = "-1";
if (isset($_GET['evento_id'])) {
$idEvento_Listar_Grupos = $_GET['evento_id'];
}
$idGrupo_Listar_Grupos = "-1";
if (isset($_GET['gp_id'])) {
$idGrupo_Listar_Grupos = $_GET['gp_id'];
}
$idCliente_Listar_Grupos = "-1";
if (isset($_GET['clt_id'])) {
$idCliente_Listar_Grupos = $_GET['clt_id'];
}
mysql_select_db($database_cnx_crosstai, $cnx_crosstai);
$query_Listar_Grupos = sprintf("SELECT * FROM grupos, clientes, eventos WHERE gp_id = %s AND clt_id = %s AND gp_id_resp = %s AND evento_id = %s", GetSQLValueString($idGrupo_Listar_Grupos, "int"),GetSQLValueString($idCliente_Listar_Grupos, "int"),GetSQLValueString($idCliente_Listar_Grupos, "int"),GetSQLValueString($idEvento_Listar_Grupos, "int"));
$Listar_Grupos = mysql_query($query_Listar_Grupos, $cnx_crosstai) or die(mysql_error());
$row_Listar_Grupos = mysql_fetch_assoc($Listar_Grupos);
$totalRows_Listar_Grupos = mysql_num_rows($Listar_Grupos);Gostei + 0
12/04/2018
Emerson Nascimento
SELECT * FROM grupos, clientes, eventos WHERE gp_id = 9 AND clt_id = 10 AND gp_id_resp = 10 AND evento_id = 5
e na execução do programa os passa como string, provavelmente o retorno do comando deve ser:
SELECT * FROM grupos, clientes, eventos WHERE gp_id = '9' AND clt_id = '10' AND gp_id_resp = '10' AND evento_id = '5'
não será esse o problema?
Gostei + 0
12/04/2018
Myller Meireles
Obrigado por responder!
Tentei resolver o caso com tua dica... alterei na função "sprintf" da query a formatação dos caracteres... aonde tinha "%s" (onde o "s" refere-se a string) coloquei "%d" (onde o "d" refere-se a valor inteiro tipo int), mas mesmo assim não rodou! ;-(
Gostei + 0
12/04/2018
Emerson Nascimento
Gostei + 0
12/04/2018
Myller Meireles
Não rolou, com o "%u"! Na dúvida, acho que vou testar com todo o abecedário... hehehehe
Gostei + 0
13/04/2018
Emerson Nascimento
Gostei + 0
13/04/2018
Willian Silva
1- Os três campos que estão vindo como get, estão vindo preenchidos? pos caso não venha eu verifiquei que vai o valor -1 assim imagino que na base não exista o cadastro com ID = -1
2 - Caso os três campos esteja vindo preenchidos no get, por favor poderia da um $query_Listar_Grupos var_damp ou um print na tela do sql para verificar se a construção do sql esteja direito.
3 - Verifiquei no teu codigo que você está usando a estrutura de consulta de base antiga caso use php com mysql talvez poderia rever e fazer o mesmo exemplo usando talvez uma conexão PDO para teste já que o sql que você tem na aplicação executa normalmente no teu bando de dados (mysql_query).
OBS: uma ajudinha que poderia usa é coloca um try catch nesse trecho de código, e assim que rodar vai mostra caso tenha algum erro de mysql ou de sql ou de código msm.
https://www.devmedia.com.br/blocos-try-catch/7339 -> é de java mais a estrutura do try catch é igual para todas as linguagens.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)