Fastland 0 Denunciar post Postado Outubro 26, 2011 Boa tarde a todos, estou com uma pequeno probleminha. Tenho uma parte de meu aplicativo onde meu funcionário inclui alguns dados e seu código de cadastro, mas antes de efetuar a gravação no BD tem que confirmar que tal funcionário existe no BD pré cadastrado, fiz uma consulta para achar o funcionário e com if se entrou tal funcionário adciona os dados no BD. Mas não está adcionando de jeito nenhum. Segue abaixo o código que estou usando. //Valida o funcionario $queryfunc = "SELECT id_funcionarios, nome FROM funcionarios WHERE id_funcionarios = '$func'"; $query = mysql_query($queryfunc); //Se encontra funcionário inclui os dados no BD if (mysql_num_rows($query) == 1) { mysql_query("INSERT INTO tb_producao VALUES (NULL, $peso, $tp_roupa_prod, $id_cliente_prod, $func, $data, $time"); } else { return false; } if (mysql_affected_rows() == 1){ echo "Registro efetuado com sucesso."; } else { echo "Registro não efetuado, confirme os dados."; } mysql_close(); A resposta que está aparecendo sempre é Registro não efetuado, confirme os dados. Desde já agradeço a atenção. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Outubro 26, 2011 Seu SELECT tah fazendo a busca correta? não tem nenhum erro nela? Ou o seu INSERT esta correto.. que da forma que você fez, você deve colocar os dados nas ordem corretas das colunas no banco.. eu jah nao curto muito fazer dessa forma que você fez, que se você por um acaso alterar a estrutura da sua tabela você tem que mudar do insert tb... Eu prefiro fazer assim mysql_query("INSERT INTO tabela SET coluna_1='$valor_1', coluna_2='$valor_2', coluna_3='$valor_3'"); Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Outubro 26, 2011 Conforme descrito no tópico Orientações para uma boa participação, utilize a função mysql_error para exibir possíveis erros nas consultas com o banco de dados. ;) Compartilhar este post Link para o post Compartilhar em outros sites
KMRodrigo 1 Denunciar post Postado Outubro 26, 2011 pergunta boba mas... você fez a conexão com o banco de dados? if (mysql_num_rows($query) == 1) { mysql_query("INSERT INTO tb_producao VALUES (NULL, $peso, $tp_roupa_prod, $id_cliente_prod, $func, $data, $time"); } eu coloco as variáveis entre aspas simples, n sei se pode ser mas tentar por entre aspas simples Compartilhar este post Link para o post Compartilhar em outros sites
Fastland 0 Denunciar post Postado Outubro 26, 2011 Boa noite a todos, Muito obrigado as aspas realmente estavam faltando, como havia varialvel de tempo $time e $date o mysql não aceitava, dava erro de síntese. Com o mysql_error() descobri isto. Mas também houve um pequeno descuido, que todos nós não percebemos. No query para inserção no banco faltou o fechamento do parenteses VALUE. Segue abaixo o código com problemas e o código arrumado. Agradeço a ajuda de todos. Abraços Código com problemas if (mysql_num_rows($query) == 1) { mysql_query("INSERT INTO tb_producao VALUES (NULL, $peso, $tp_roupa_prod, $id_cliente_prod, $func, $data, $time"); } Codígo corrigido if (mysql_num_rows($query) == 1) { mysql_query("INSERT INTO tb_producao VALUES ('NULL', '$peso', '$tp_roupa_prod', '$id_cliente_prod', '$func', '$data', '$time')"); } Compartilhar este post Link para o post Compartilhar em outros sites