subkiller Posted June 11, 2009 at 05:21 PM Report #271496 Posted June 11, 2009 at 05:21 PM boas estou aqui a ter problemas ao fazer um insert na base de dados. eu uso esta funçao para excutar querys: function execute_query($query) { include "server_info.php"; if(!($id = mysql_connect($server, $username, $password))) { return 0; } if(mysql_select_db($database)) { if(mysql_query($query)) { mysql_close(); return 1; } else { mysql_close(); return 0; } } else { mysql_close(); return 0; } } depois na pagina eu faço isto: session_start(); include "functions/server_info.php"; include "functions/execute_query.php"; if(isset($_POST['enviar'])) { if(!($id = mysql_connect($server, $username, $password))) { return 0; } if (mysql_select_db($database, $id)) { $nome = mysql_real_escape_string($_POST['nome']); $telefone = mysql_real_escape_string($_POST['telefone']); $email = mysql_real_escape_string($_POST['email']); $msg = mysql_real_escape_string($_POST['mensagem']); if(!empty($nome) || !empty($telefone) || !empty($email) || !empty($msg)) { $data = date("y-m-d"); $id = $_SESSION["id"]; $query = "INSERT INTO pedidos_maquinas(id_maquina, nome, telefone, email, mensagem, data) VALUES('$id', '$nome', '$telefone', '$email', '$msg', '$data')"; if(execute_query($query)) { $warning = "<p><font color='green'>Pedido enviado</font></p>"; } else { $warning = "<p><font color='red'>Error $query</font></p>"; //vai sempre para a esta linha } } else { $warning = "<p><font color='red'>Algum dos campos esta vazio</font></p>"; } } } eu fiz um echo á query para ver se estava bem feita. sera que o prob esta na minha funçao execute_query() ? estou aqui a mas nao insere na base de dados cumps.
djthyrax Posted June 11, 2009 at 06:13 PM Report #271507 Posted June 11, 2009 at 06:13 PM Muda a função para isto: function execute_query($query) { return mysql_query($query); } Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
subkiller Posted June 11, 2009 at 07:13 PM Author Report #271524 Posted June 11, 2009 at 07:13 PM boas djthyrax... eu substitui para isso mas continua a dar-me o mesmo erro. eu tenho usado esta funçao e nao tenho razao de queixa, nao percebi porque me da erro.
andreb Posted June 11, 2009 at 08:13 PM Report #271536 Posted June 11, 2009 at 08:13 PM mas tá a dar algum erro? se sim qual? ...
The Loser Posted June 11, 2009 at 09:15 PM Report #271553 Posted June 11, 2009 at 09:15 PM Embora essa função trabalhe mesmo, aconselho-te fortemente a não usa-la. Estás a fazer uma ligação por cada query que fazes, e estás a incluir por cada vez que a fazes um ficheiro externo. Essa função é uma ideia muito má. Faz uma ligação inicial, e fecha-a no fim. Quanto ao problema, que erro está a ser retornado? I intend to live forever. So far so good.
subkiller Posted June 11, 2009 at 09:42 PM Author Report #271565 Posted June 11, 2009 at 09:42 PM if(execute_query($query)) { $warning = "<p><font color='green'>Pedido enviado</font></p>"; } else { $warning = "<p><font color='red'>Error $query</font></p>"; //vai sempre para a esta linha } eu fiz um if no execute_query, e ele retorna-me o que esta dentro do else... como eu tenho no codigo. #the loser desculpa, nao percebi. estas a dizer para eu incluir uma vez apenas o include ao server_info.php (sao as variaveis de ligaçao ao localhost), certo? desde ja obrigado pelas ajudas... 😕
The Loser Posted June 11, 2009 at 09:54 PM Report #271571 Posted June 11, 2009 at 09:54 PM Não, estou a dizer para, em vez de fazeres 5 ligações diferentes ao teu RDBMS numa página com 5 queries, fazeres só uma. Como o fazes é irrelevante (poderia ser feito com uma ligação inicial). EDIT: Also, convém dares-nos um erro concreto. mysql_query($query) or die(mysql_error()); I intend to live forever. So far so good.
infopc Posted June 12, 2009 at 09:32 AM Report #271626 Posted June 12, 2009 at 09:32 AM n é por nada, mas n estas a fazer include do mesmo ficheiro duas vezes? o ficheiro server_info.php é chamado na função execute_query e no teu ficheiro principal, n sei o que tem la dentro mas se tiver funções corre mal, e já agora substitui a tua query por isto <?php $query = "INSERT INTO pedidos_maquinas(nome, telefone, email, mensagem, data) VALUES( 'teste', '211234567', 'teste@exemplo.pt', 'lorem ipsum', '2009-06-12')"; ?> Acho que o stress esta em declarares a variável id duas vezes usa por exemplo $p_id Fica Bem O que não tem solução, solucionado esta...
subkiller Posted June 12, 2009 at 01:24 PM Author Report #271688 Posted June 12, 2009 at 01:24 PM segui a sugestao do the loser e fiz mysql_query($query) or die(mysql_error()) e deu-me o seguinte: Cannot add or update a child row: a foreign key constraint fails (`gpsi50612_my269418/pedidos_maquinas`, CONSTRAINT `pedidos_maquinas_ibfk_1` FOREIGN KEY (`id_maquina`) REFERENCES `pedidos_maquinas` (`id_pedido`) ON DELETE CASCADE) e eu acho que ja sei qual é o problema na minha tabela tenho dois ids que sao o id do pedido e o id da maquina, em que o id do produto tem uma relaçao com o id na tabela maquinas. mas acho que me enganei e coloquei a relaçao do id da tabela produtos com o id do pedido...
subkiller Posted June 12, 2009 at 01:26 PM Author Report #271689 Posted June 12, 2009 at 01:26 PM ja funciona... 😁, realmente foi uma distracçao minha.... ? obrigado a todos pelas respostas... cumps.
Patrijosa Posted June 12, 2009 at 06:24 PM Report #271748 Posted June 12, 2009 at 06:24 PM ja funciona... 😁, realmente foi uma distracçao minha.... ? obrigado a todos pelas respostas... cumps. qual foi a solução? O verdadeiro sábio é um eterno aprendiz! http://www.patriciodossantos.net
subkiller Posted June 12, 2009 at 08:35 PM Author Report #271774 Posted June 12, 2009 at 08:35 PM por exemplo. tabela maquinas: id nome caracteristicas tabela pedidos id_pedido id_maquina nome mensagem na tabela pedidos o id_maquina relaciona-se com o id da tabela maquinas, mas eu enganei-me e fiz relaçao do id da tabela maquinas com o id_pedido da tabela pedidos. por isso, a unica coisa que eu fiz foi fazer a relaçao entre o id_maquina e o id(tabela maquinas) 😕 antes deu este erro: Cannot add or update a child row: a foreign key constraint fails (`gpsi50612_my269418/pedidos_maquinas`, CONSTRAINT `pedidos_maquinas_ibfk_1` FOREIGN KEY (`id_maquina`) REFERENCES `pedidos_maquinas` (`id_pedido`) ON DELETE CASCADE)
Patrijosa Posted June 15, 2009 at 01:40 PM Report #272400 Posted June 15, 2009 at 01:40 PM por exemplo. tabela maquinas: id nome caracteristicas tabela pedidos id_pedido id_maquina nome mensagem na tabela pedidos o id_maquina relaciona-se com o id da tabela maquinas, mas eu enganei-me e fiz relaçao do id da tabela maquinas com o id_pedido da tabela pedidos. por isso, a unica coisa que eu fiz foi fazer a relaçao entre o id_maquina e o id(tabela maquinas) 😉 antes deu este erro: Cannot add or update a child row: a foreign key constraint fails (`gpsi50612_my269418/pedidos_maquinas`, CONSTRAINT `pedidos_maquinas_ibfk_1` FOREIGN KEY (`id_maquina`) REFERENCES `pedidos_maquinas` (`id_pedido`) ON DELETE CASCADE) valeu desse jeito todo mundo aprende com os erros. e ninguém irá novamente tirar a mesma dúvida ;-) cumps O verdadeiro sábio é um eterno aprendiz! http://www.patriciodossantos.net
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now