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

Conecççoes BD php

Discussão em 'Web Development' iniciada por redy, 18 de Fevereiro de 2009. (Respostas: 6; Visualizações: 740)

  1. Boa tarde.

    Bem, tou a fazer um programa/pagina web que tem q fazer o "Insert" "updat" "delete" "listar dados" de uma base de dados...

    Bem, a pagina esta feita da seguinte forma:

    Este é o ficheiro/pagina q é chamada inicialmente...

    So que o problema é q sempre q eu clico no botao tanto como inserir ou como CriarTabelas ele corre o outro ficheiro so que perde a conecçao :S

    Este é ficheiro que chama quando se carrega em CriarTabelas :S


    Ja tentei fazer sem o form a chamar uma funçao no programa:
    So que este nao da :X

    Sou novo nisto, o q sugerem q faça pa nao perder a conecçao?

    Saudaçoes, Raul Silva
     
  2. eralha

    eralha Power Member

    Boas.

    Pelo que vi perdes a ligação porque navegas para outra pagina, quando viajas para a pagina de criação de tabelas ou edição, deves criar uma nova ligação a base de dados, há e é sempre boa politica fechar a ligação depois da interação com o SQL fazes tudo o que tens a fazer, no fim chamas: mysql_close($ligacao);
     
  3. Antes de mais obrigado por responderes.

    Tipo, por mudar de pagina perco a ligação, entao como tenho que fazer?

    Em vez de usar:
    Tenho que usar este codigo para chamar uma funçao que tenha la o codigo para criar/apagar etc??
    Se tiverem opçoes para fazer isto digam s.f.f.
    Abraço, redy
     
  4. Cuidado que onclick="criartabelas()" acontece em JavaScript, mas não é coisa de PHP. Após carregares uma página só consegues interagir novamente com o PHP ao carregá-la novamente (a página).
    Sim, cada vez que acaba de executar um script de PHP são fechadas as ligações e para a próxima vez terás que inicializar uma nova conecção.
    Caso não queiras trabalhar com Sessões (que desaconselho por motivos de simplicidade e segurança) terás que transportar os dados de nome a password juntamente com os formulários para cada acção, tipo:
    <input type="hidden" name="nome" value="<?php echo $_POST['nome']; ?>" />
    e depois na nova página terás que voltar a ligar à Base-de-Dados (mysql_connect()) tal como já o fizeste.
     
  5. tonebiclas

    tonebiclas Power Member

    faz um ficheiro de ligacao á BD do tipo:

    ligacao.php (dentro do ficheiro metes os dados de acesso á bd)

    dpois em cada pagina so tens de fazer o include "ligacao.php";
     
  6. eralha

    eralha Power Member


    Exacto, mas o rapaz acho que ainda nao percebeu o funcionamento server side cliente side.
     
  7. Idealiza que o processamento do php pelo servidor ocorre num tempo diferente da leitura do html no lado do cliente. Depois do servidor processar o php da página ele só retorna o html (aquilo que podes ver em Ver Código-Fonte da Página), o que significa que nada em html é capaz de chamar funções de php.

    O problema de momento é que não consegues fazer com que a ligação à BD dure pelas várias páginas em que o utilizador navega, por isso sempre que queres criar uma ligação terás que meter o utilizador e a palavra-passe.
    Agora tens duas maneiras de trabalhar com isso, ou então, sempre que o utilizador escolha uma acção tu mandas juntamente a informação de utilizador e palavra-passe; OU então crias uma sessão para o utilizador que basicamente é um conjunto de variáveis guardadas no servidor que não se perdem quando o utilizador navega de página. É preferível a opção de sessões, por isso vou mostrar-ta:

    O que deverás fazer agora é criar uma ficheiro chamado 'ligacao.php' e meter-lhe o seguinte conteúdo:
    PHP:
    <?php

    //necessitas de chamar esta funcao sempre que queres trabalhar com sessoes
    session_start();

    //isto aqui vai reconhecer se o utilizador esta a tentar fazer uma accao de 'Ligar BD'
    if ( isset($_POST['nome']) && isset($_POST['password']) ) {
      
    //se ele estiver realmente a tentar fazer login entao os dados serao passados para a variavel de sessao
      
    $_SESSION['utilizador'] = $_POST['nome'];
      
    $_SESSION['password'] = $_POST['password'];
    }

    //agora vai tentar estabeler a ligacao, mas somente se existir uma sessao iniciada
    if ( isset($_SESSION['utilizador']) && isset($_SESSION['password']) ) {
      
    //e usa a informacao da sessao para ligar a BD
      
    $ligax mysql_connect('192.168.2.2'$_SESSION['utilizador'], $_SESSION['password']); //o @ que tirei e' usado para supressao de erros, por agora e' bom ver as mensagens de erros
      
    if ($ligax) { //nao poupes nos espacos, e' bem mais facil ver codigos com muitos espacos
        
    $bd mysql_select_db('a12-ig2-12_bd'$ligax);
      }
    }
    ?>
    O código acima irás chamar em todos os teus ficheiros onde fazes ligação à base de dados, logo no início, ou seja, começas em todas as páginas a escrever logo
    PHP:
    <?php
    include('ligacao.php');
    ?>
    supondo que esse ficheiro se encontra no mesmo directório.
     

Partilhar esta Página