Criando, inserindo e exibindo em PHP-->ajudem-me pf

:::HS:::

Membro
Olá pessoal, este é o meu primeiro tópico

Ultimamente estou vendo alguns tutoriais de php para ver se aprendo de vez essa linguagem.

Bom, é o seguinte.
Encontrei esta apostila de php neste endereço aqui-->http://apostilando.com/download.php?cod=2159&categoria=PHP
....se quizeres podem fazer download para experimentarem tambem

Estou seguindo isso a na marra, mas está sempre a dar erro
Por exemplo: quando tento testar o inserindo.php no browser, recebo a seguinte mensagem:

Parse error
: parse error in C:\sitesPHP\TESTE\apostilando\inserindo.php on line 16

...
ja tentei modificar a linha 16, mas não consegui fazer com que não desse erro.
Se puderem me ajudar com isto, eu agradeço muito. É muito importante para mim a aprendizagem dessa linguagem (PHP)
Tambem se tiverem um bom tutorial de php, por favor passem-me o link. Obrigado


Aqui vai os codigos:

formulario.php
Código:
<html>
<head>
<title>Formul&aacute;rio para inserir no BD</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="inserindo.php" method="post" name="Mural" id="Mural">
<table width="450" border="o" cellspacing="0" cellpadding="3"></table>
 <tr>
   <td width="111"></td><div align="right">Nome:</div></td>
   <td width="339"><input name="nome" type="text" id="nome" size="30"></td>
 </tr>
   <td valign="top"><div align="right">Mensagem:</div></td>
   <td><textarea name="mensagem" cols="30" rows="10" id="mensagem"></textarea></td>
 </tr>
 <tr>
   <td height="29" colspan="2" valign="top"><div align="center">
       <input type="Submit" name="Submit" value="Inserir no banco de dados">
   </div>
   </td>
   </tr>
   </table>
</form>
</body>
</html>

conectdb.php

Código:
<?php
/**Local onde esta rodando o php*/
$hostname = 'localhost';
/**Nome do usuario que tem acesso*/
$username = 'root';
/**Senha do usuario, no exemplo esta em branco*/
$senha = '';
/**Banco de dados desejado*/
$banco = 'emac';
/**mysql_connect -- Abre uma connecção com o servidor Mysql*/
$db = mysql_connect($hostname, $username, $senha);
/**mysql_select_db -- Seleciona um banco de dados Mysql*/
mysql_select_db ($banco, $db);
?>
inserindo.php
Código:
<html>
<head>
<title>Inserir no BD</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
   /**Arquivo para conectar ao banco de dados*/
   require("conectdb.php");
   
   /**Pegando a data*/
   $hora = strftime("%H:%M:%S")
   
   /**Inserindo na tabela tb_mural, nos campos os valores das variaveis*/
   $sqlinsert = "INSERT INTO tb_mural (id_mensagem, nome, mensagem, data, hora)
   VALUES ('' , '$nome' , '$mensagem' , '$data' , '$hora')";
   
   /**mysql_query -- Realiza uma query Mysql, executa o comando da variavel*/
   /**o comando die server para, caso aconteça algum erro (Mostra uma mensagem e termina o script actual) */
   mysql_query($sqlinsert) or die ("Não foi possivel inserir");
   
   /**Exibe as informações se for inserindo com sucesso*/
   echo "Na data $data  ena hora $hora<br>$nome disse:<br>$mensagem";
   
   
?>

</body>

</html>

exibir.php

Código:
<html>
<head>
<title>exibindo o conte&uacute;do da tabela tb_mural</title>
<meta http-equiv="content-type" content="text/html charset=iso-8859-1">
</head>

<body>
<?
   /**Arquivo para conectar ao banco de dados*/
   require("conectdb.php");
   /**Selecione os dados do banco de dados*/
   $sql= "SELECT * FROM tb_mural"
   /**Buscando o limite da tabela para exibição*/
   $limite = mysql_query ("$sql")
   /**Comandos para exibir a tabela tb_mural*/
   while ($sql = mysql_fetch_array($limite)) {
       $id_mensagem   =$sql["id_mensagem"];
       $nome          =$sql["nome"];
       $mensagem      =$sql["mensagem"];
       $data          =$sql["data"];
       $hora          =$sql["hora"];
       
   /**Exibindo através do echo, o conteudo obtido*/
   echo "Mensagem do id $id_mensagem<br>$nome<br>$mensagem<br>Na data $data e na hora<br><br>";
   //fechando o while

?>
</body>

</html>
Agradeço desde ja.
Abraço
 
Última edição pelo moderador:
no inserindo.php, falta-te o ponto e virgula no final destas instruções:

$hora = strftime("%H:%M:%S")
$sqlinsert = "INSERT INTO tb_mural (id_mensagem, nome, mensagem, data, hora)


e o exibir.php, mesma coisa nesta instrução
$limite = mysql_query ("$sql")

e nesse mesmo ficheiro tens isto:
//fechando o while

mas nunca o chegas a fechar, ou seja falta-te ai a }
 
Olá,
agradeço muito pela ajuda :)

de facto, nem reparei nos "ponto e virgula" que faltavam...acrescentei-os e ja não deu mais esse erro.

Porém, tenho outro problema. É o seguinte, quando eu insiro a mensagem no meu servidor localhost, a mensagem não me é retornada, quer dizer, aparece o registo no BD...a pagina exibir.php vai mostrando os registos (id_mensagem, data, hora), mas sem o conteúdo da mensagem e sem o nome da pessoa que inseriu os dados...

...não sei se consegui explicar bem, mas olha:
Criei um banco de dados conforme indicado pelo tutorial e fiz o upload dos ficheiros para a web...mas (na web), quando insiro os dados, retorna sempre um erro na pagina inserir.php--> Não foi possivel inserir
Duvida: o arquivo conectdb.php fica com a mesma configuração (do localhost) ou sera que, quando eu mando tudo para a web tenho de mudar alguma coisa?

A página que fiz o upload é esta http://testedepagina.hostdegraca.com/
(para ver o resto do conteudo é so acrescentar o nome do arquivo atras do barra (/).
Ex: http://testedepagina.hostdegraca.com/formulario.html )

Se puderem dar uma "olhada" nisso aí para mim, seria um grande favor

Obrigado por tudo
Abraço
 
Última edição:
troca isto
Código:
mysql_query($sqlinsert) or die ("Não foi possivel inserir");

por isto
Código:
mysql_query($sqlinsert) or die ("Não foi possivel inserir: ".mysql_error());

e depois diz qual é o erro que dá
 
Mais uma vez, faz la isso que o MPalhas disse, mas desta vez, deixa-me acrescentar, para depois do $sqlinsert

fazeres:

PHP:
 echo " SQL -> ". $sqlinsert;

e depois corres o código no phpmyadmin, e ele diz-te qual é o problema.
 
Olá, segui as vossas instruções:

No servidor web aparece o seguinte erro:
Nesta pagina-->http://testedepagina.hostdegraca.com/inserindo.php
Não foi possivel inserir: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

No servidor local (localhost) aparece isto:
SQL -> INSERT INTO tb_mural (id_mensagem, nome, mensagem, data, hora) VALUES ('' , '' , '' , '' , '21:04:25')Na data e na hora 21:04:25
disse:
 
Última edição:
Ola

Era so para mostrar detalhadamente os erros seguintes:

NO LOCALHOST
inserir.php dá o seguinte erro:
QUOTE
". $sqlinsert; /**Exibe as informações se for inserindo com sucesso*/ echo "Na data $data e na hora $hora
$nome disse:
$mensagem"; ?>


exibir.php o erro é este (não mostra dados do bd e nem a hora correcta):
QUOTE
Mensagem do id 1


Na data 0000-00-00 e na hora

Mensagem do id 2


Na data 0000-00-00 e na hora

Mensagem do id 3



NO SERVIDOR
inserir.php dá o seguinte erro:
QUOTE
Não foi possivel inserir: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


exibir.php não mostra nada


Codigos:
inserir.php
QUOTE
<html>
<head>
<title>Inserir no BD</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
/**Arquivo para conectar ao banco de dados*/
require("conectdb.php");

/**Pegando a data*/
$hora = strftime("%H:%M:%S");

/**Inserindo na tabela tb_mural, nos campos os valores das variaveis*/
$sqlinsert = "INSERT INTO tb_mural (id_mensagem, nome, mensagem, data, hora)
VALUES ('' , '$nome' , '$mensagem' , '$data' , '$hora')";

/**mysql_query -- Realiza uma query Mysql, executa o comando da variavel*/
/**o comando die server para, caso aconteça algum erro (Mostra uma mensagem e termina o script actual) */
mysql_query($sqlinsert) or die ("Não foi possivel inserir: ".mysql_error());
echo " SQL -> ". $sqlinsert;

/**Exibe as informações se for inserindo com sucesso*/
echo "Na data $data e na hora $hora<br>$nome disse:<br>$mensagem";


?>

</body>

</html>


exibir.php
QUOTE
<html>
<head>
<title>exibindo o conteúdo da tabela tb_mural</title>
<meta http-equiv="content-type" content="text/html charset=iso-8859-1">
</head>

<body>
<?
/**Arquivo para conectar ao banco de dados*/
require("conectdb.php");
/**Selecione os dados do banco de dados*/
$sql= "SELECT * FROM tb_mural";
/**Buscando o limite da tabela para exibição*/
$limite = mysql_query($sql);
/**Comandos para exibir a tabela tb_mural*/
while ($sql = mysql_fetch_array($limite)) {
$id_mensagem =$sql["id_mensagem"];
$nome =$sql["nome"];
$mensagem =$sql["mensagem"];
$data =$sql["data"];
$hora =$sql["hora"];

/**Exibindo através do echo, o conteudo obtido*/
echo "Mensagem do id $id_mensagem<br>$nome<br>$mensagem<br>Na data $data e na hora<br><br>";
} //fechando o while

?>
</body>

</html>


formulario.html
QUOTE
<html>
<head>
<title>Formulário para inserir no BD</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="inserindo.php" method="post" name="Mural" id="Mural">
<table width="450" border="o" cellspacing="0" cellpadding="3"></table>
<tr>
<td width="111"></td><div align="right">Nome:</div></td>
<td width="339"><input name="nome" type="text" id="nome" size="30"></td>
</tr>
<td valign="top"><div align="right">Mensagem:</div></td>
<td><textarea name="mensagem" cols="30" rows="10" id="mensagem"></textarea></td>
</tr>
<tr>
<td height="29" colspan="2" valign="top"><div align="center">
<input type="Submit" name="Submit" value="Inserir no banco de dados">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>


Obrigago pelas respostas
Abraço
 
Back
Topo