1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Web Development' iniciada por :::HS:::, 4 de Agosto de 2008. (Respostas: 7; Visualizações: 3553)

  1. 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: 4 de Agosto de 2008
  2. MPalhas

    MPalhas Power Member

    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 }
     
  3. hostmake

    hostmake Power Member

  4. 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: 5 de Agosto de 2008
  5. MPalhas

    MPalhas Power Member

    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á
     
  6. hostmake

    hostmake Power Member

    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.
     
  7. Olá, segui as vossas instruções:

    No servidor web aparece o seguinte erro:
    Nesta pagina-->http://testedepagina.hostdegraca.com/inserindo.php
    No servidor local (localhost) aparece isto:
     
    Última edição: 5 de Agosto de 2008
  8. 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
     

Partilhar esta Página