Preciso de ajuda! [RESOLVIDO]

13. Reinteiro minha solução

Samuel Moura
samucabh

(usa Ubuntu)

Enviado em 10/12/2009 - 21:52h

Boa noite Edu.linux,

No exemplo que você postou a query está correta, entretanto está faltando dizer onde em que ela irá executar; ou seja, após a query deve se dizer em qual servidor, usuario para o banco de dados e senha para o mesmo por isso que atribuir a query a uma variável e executei da seguinte forma:

mysql_query($sql,$conecta);


o include "conexao.php" evita que você informe na página dados da conexao mas mesmo assim deve utilizar a variável da conexao no comando mysql_query...

Faz um teste para ver se da forma que passei a dica resolve e informe se funcionou ou não..


  


14. Re: Preciso de ajuda! [RESOLVIDO]

Eduardo Alves dos Santos
edu.linux

(usa Ubuntu)

Enviado em 11/12/2009 - 12:44h

Boa tarde samucabh Vamos ver se eu entendi!

Logo após a query de inserção, tenho que dizer ao php onde essa inserção é feita? Estou seguindo uma video aula do Fernando Noronha do site www.beck.com!
E no exemplo dele(usando Windows, Dreamweaver e Wampserver) deu certo! Vou tentar aqui o que vc indicou, e logo em seguida posto pra vcs... no mais, muito obrigado!


15. Re: Preciso de ajuda! [RESOLVIDO]

Eduardo Alves dos Santos
edu.linux

(usa Ubuntu)

Enviado em 11/12/2009 - 13:15h

Bom pessoal eu tentei novamente e não funcionou, deu o seguinte erro!

Parse error: syntax error, unexpected $end in /var/www/curso_php/funcoes.php on line 19

Aqui vai o código da página funcoes.php sem a tag meta


<?php
/*aqui estamos chamando a página de conexão, dentro da pagina funcoes
e desse modo, não precisamos redigitar nenhum código a mais, aproveitando a
conexao.php*/

include "conexao.php";
// esse código aqui cria variáveis dos campos do formulário.

$grava_nome = $_POST ['nome'];
$grava_email = $_POST ['email'];
$grava_cidade = $_POST ['cidade'];
$grava_mensagem = $_POST ['mensagem'];

if($_GET ['funcao'] == "gravar") {
$sql_gravar= mysql_query("INSERT INTO tb_curso ('nome','email', 'cidade', 'mensagem') values('$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem')");
mysql_query($sql_gravar,$plug);
header ('Location:formulario.php');
echo " Dados inseridos com sucesso! " ;
?>

E aqui segue o meu código de conexão

conexao.php

<?
$plug = mysql_connect("localhost", "root", "xxxxx");
$con = mysql_select_db("curso_db", $plug) or die ("Não foi possível se conectar ao BD");
?>

Como vcs devem ter percebido, voltei a variável global para $_GET pois estou passando os parâmetros por url! Se estiver errado, por favor repostem o código corrigido para que eu compare com o meu...


16. Falta o }

Diego Monteiro Medeiros de Araújo
medeirosdiego

(usa Ubuntu)

Enviado em 11/12/2009 - 13:36h

O mestrekame matou a charada, para que a função Header() funcione, não pode ser enviada nenhuma saída para o browser, inclusive META Tags.

O último erro está ocorrendo pois o if tem uma "chave" de abertutra mas não há o fechamento.

Adicione um "Fecha Chaves" } após o Header()


17. Re: Preciso de ajuda! [RESOLVIDO]

Eduardo Alves dos Santos
edu.linux

(usa Ubuntu)

Enviado em 11/12/2009 - 17:36h

Pessoal, fiz a mudança sugerida pelo pessoal, e o que funcionou foi fechando a chave "}", deixei a função header mas sem a metatag meta (eita redundância), e não aparece nenhuma mensagem de erro.

Porém... não insere nada no meu bd, a minha tabela está vazia. Alguma sugestão? E quero agradecer mesmo a todos pela ajuda... que até aqui foi crucial.
Meu ambiente de desenvolvimento em php? Quanta Plus, e gPhpedit.

Como seu sei qua a galera gosta de ler código, vai aqui eles depois das devidas alterações.

Alteração no conexao.php = nenhuma
<?
$plug = mysql_connect("localhost", "root", "1234");
$con = mysql_select_db("curso_db", $plug) or die ("Não foi possível se conectar ao BD");
?>

no formulário.php = nenhuma alteração

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html template="true"><head>

<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>formulario</title>


</head><body>
<form method="post" action="funcoes.php?funcao=gravar" name="form">
<div style="text-align: right;"> </div>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr align="right">
<td style="vertical-align: top;">Nome:<br>
</td>
<td style="vertical-align: top; text-align: left;"><input name="nome"><br>
</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: right;">Email:<br>
</td>
<td style="vertical-align: top;"><input name="email"><br>
</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: right;">Cidade:<br>
</td>
<td style="vertical-align: top;"><input name="cidade"><br>
</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: right;">Mensagem:<br>
</td>
<td style="vertical-align: top;"><textarea cols="45" rows="5" name="mensagem"></textarea><br>
</td>
</tr>
<tr>
<td style="vertical-align: top;"><br>
</td>
<td style="vertical-align: top;"><input value="Enviar" type="submit"><br>
</td>
</tr>
</tbody>
</table>
<br>
</form>

</body></html>

e no funcoes.php = as alterações foram na retirada da metatag, deixei o header só que como o parâmetro é passado por url, deixei no método global $_GET pq no método $_POST não deu certo do mesmo jeito.

<?php
/*aqui estamos chamando a página de conexão, dentro da pagina funcoes
e desse modo, não precisamos redigitar nenhum código a mais, aproveitando a
conexao.php*/

include "conexao.php";
// esse código aqui cria variáveis dos campos do formulário.

$grava_nome = $_POST ['nome'];
$grava_email = $_POST ['email'];
$grava_cidade = $_POST ['cidade'];
$grava_mensagem = $_POST ['mensagem'];

if($_GET ['funcao'] == "gravar") {
$sql_gravar= mysql_query("INSERT INTO tb_curso ('nome','email', 'cidade', 'mensagem') values('$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem')");
mysql_query($sql_gravar,$plug);
header ('Location:formulario.php');
echo " Dados inseridos com sucesso! " ;

}

?>

Onde será que estou errando agora?
Abraço a todos.



18. Ainda preciso de ajuda

Eduardo Alves dos Santos
edu.linux

(usa Ubuntu)

Enviado em 21/12/2009 - 16:44h

Pessoal tive problemas pessoais por aqui, e ainda não consegui criar uma conexão simples com o mysql e o php... estou pensando em formatar o meu pc com Ubuntu... mas antes disso, eu vou tentar esse código no Windows, e posto pra vcs se deu ou não certo.... por enquanto é só, um forte abraço... Não vou desistir do PHP.... conto com vcs... abraços...


19. Solução

kleber galucio
klebrr

(usa Linux Mint)

Enviado em 21/12/2009 - 20:27h

Arquivo conexao.php
-------------------------------

function conexao(){
$servidor = 'localhost';
$usuario = 'root';
$senha = '1234';
$bancoc = 'curso_db';
global $erros;
@mysql_connect($servidor, $usuario, $senha);
if(mysql_errno()!=0){echo $erros[mysql_errno()];exit; }
@mysql_select_db($bancoc);
if(mysql_errno()!=0){echo $erros[mysql_errno()];exit; }
}

/* backup do sql
-- Banco de Dados: `curso_db`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `tb_curso`
--

CREATE TABLE IF NOT EXISTS `tb_curso` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`nome` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`cidade` varchar(50) NOT NULL,
`mensagem` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

*/
?>
-------------------------------
Arquivo funcoes.php
================================
<?php
include 'conexao.php';
// variáveis que vem do form via $_POST.
$grava_nome = $_POST ['nome'];
$grava_email = $_POST ['email'];
$grava_cidade = $_POST ['cidade'];
$grava_mensagem = $_POST ['mensagem'];

if($_GET ['funcao'] == "gravar") {

conexao(); //abre a conexao

$sql_gravar = "INSERT INTO tb_curso(id, nome, email, cidade, mensagem) VALUES (NULL, '$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem');";

mysql_query($sql_gravar);
@mysql_close(); //fecha a conexao
//header ('Location:formulario.php');
echo " Dados inseridos com sucesso! " ;

}
?>
--------------------------------
Arquivo formulario.php
================================
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>formulario</title>
</head>
<body>
<form method="post" action="funcoes.php?funcao=gravar" name="form">
..........
...........
</body></html>
--------------------------------

aqui funcionou blz.

adicionei um campo id na tabela do tipo auto incremento
criei uma função conexao();



20. Tópico resolvido, mas com ressalvas!

Eduardo Alves dos Santos
Edu.linux

(usa Ubuntu)

Enviado em 11/01/2010 - 16:37h

Ae galera, pensa que esqueci de vcs, claro que não!!! Agradeço imensamente a contribuição de cada um, e estou resolvido a integrar de forma profissional a vasta comunidade de programadores em php. Consegui resolver o problema de conexão e inserção de dados, mas fiquei com dúvidas em relação a algumas coisa que são:

1 - Por que motivo não consegui usar a função header, mesmo usando a solução de exemplo do klebrr;
2 - O que são de fato aquelas "@" nas funções do mysql??
3 - Achei o netbeans um pouco pesado, e até mesmo estranho para se usar... apesar do autocompletar dele ser show..;
4 - Existe alguma configuração em que posso rodar somente o Netbeans e testar a velocidade do Apache TomCat? Quem aqui desenvolve em PHP, e usa somente o Netbeans e consegue rodar nativamente no Linux... eu sei que ele é cross-platform, mas digo isso pq sempre que tento rodar o teste, o navegador não abre!


21. Essa foi a minha solução!

Eduardo Alves dos Santos
Edu.linux

(usa Ubuntu)

Enviado em 11/01/2010 - 16:50h

Essa foi a solução encontrada para o arquivo funcoes.php

<?php
// Esse trecho do código chama a conexão com o banco de dados
include "conecta.php";

//Agora vamos criar variáveis para os campos do formulário

$peganome = $_POST['nome'];
$pegaemail = $_POST['email'];
$pegacidade = $_POST['cidade'];
$pegamensagem = $_POST['mensagem'];



$sql_gravar = mysql_query("INSERT INTO tb_curso(nome,email,cidade,mensagem) VALUES('$peganome','$pegaemail','$pegacidade','$pegamensagem')") or die ("Não foi possível inserir os dados");

echo "<h3 align=\"center\">Dados inseridos!</h3> </br> </br>";
echo "<div align=\"center\"><a href=form.php>Página Inicial</a></div>";
exit;

?>

esse aqui é o arquivo de conexão

<?php
$plug = mysql_connect('localhost','root','xxxxxxxxxxxxxx');
$bancod = mysql_select_db('curso_db',$plug) or die ("Falha ao se conectar ao banco de dados");
?>

e o form que e'esse

<form name="form" action="funcoes.php" method="post">
<table name="tb" align="center" border="0">
<tr>
<td>Nome:</td>
<td><input type="text" name="nome"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade"></td>
</tr>
<tr>
<td>Mensagem:</td>
<td>
<textarea name="mensagem" cols="45" rows="5">
</textarea>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Enviar">
</td>
</tr>
</table>
</form>

Mas essa foi solução encontrada, e que funcionou aqui!
vou dar o tópico como resolvido!



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts