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

Conexão om base de dados mysql

Discussão em 'Web Development' iniciada por xerife, 26 de Junho de 2007. (Respostas: 4; Visualizações: 1865)

  1. Viva,
    gostava que me ajudassem a configurar a ligação do script em PHP á base de dados mysql.
    Não sei o que se passa, penso que executei correctamente todos os passos e quando vou ao site para aceder á base de dados dá-me apenas uma mensagem «erro de pagina» mesmo fazendo
    PHP:
    <?php
    $q
    =$_GET["q"];
    $con mysql_connect('mysql3.freehostia.com''marara9_ajax''4239636');
    if (!
    $con)
     {
     print 
    'falhou conexao';
     die(
    'Could not connect: ' mysql_error());
     }
    print 
    'falhou conexao';
    mysql_select_db("marara9_ajax"$con);
    $sql="SELECT * FROM ficheiro WHERE id = '".$q."'";
    $result mysql_query($sql);
    print 
    $con;
    print 
    $sql;
    echo 
    "<table border='1'>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
    <th>Hometown</th>
    <th>Job</th>
    </tr>"
    ;
    while(
    $row mysql_fetch_array($result))
     {
     echo 
    "<tr>";
     echo 
    "<td>" $row['Firstname'] . "</td>";
     echo 
    "<td>" $row['Lastname'] . "</td>";
     echo 
    "<td>" $row['Age'] . "</td>";
     echo 
    "<td>" $row['Hometown'] . "</td>";
     echo 
    "<td>" $row['Job'] . "</td>";
     echo 
    "</tr>";
     }
    echo 
    "</table>";
    mysql_close($con);
    ?>
     
     
  2. p3dro

    p3dro Power Member

    bem, espero que esses dados de ligação à BD não sejam os reais :joker:, sugeria que os alterasses.

    pelo menos esta frase "falhou conexao" vai ser smp impressa, tens a mensagem dentro e fora do if :)

    mas diz qual é o erro completo, pode ser um erro de server/ username/ password/ database incorrectos por ex; a própria query pode estar mal construída, por ex. o parametro pode não estar a ser bem passado e depois ao construir o sql vai dar 1 erro de sintaxe, etc, etc ...
     
  3. Bem, não faço ideia qual o erro. Ele não me dá erro nenhum.
    O erro aparece no canto inferior esquerdo do internet explorer «erro de página».
    Mas já editei o código index.html e o ficheiro.html com o dreamweaver e não me retorna qualquer erro. Não percebo mesmo nada disto. Vejam se me conseguem ajudar.
    É um trabalho que tenho que entregar amanhã.
     
  4. K0mA

    K0mA Power Member

    Tenta ver o Log do servidor para perceber que tipo de erro é.
     
  5. msdevweb

    msdevweb Power Member

    bem, podes começar por alterar a extensao do teu index.html, e ficheiro.html para .php porque se o teu codigo php estiver dentro de um .htm* nao sera interpretado pelo php. depois na tua sintaxe de codigo existem bastantes erros bem como muitos warnings. explicando:

    Código:
    //(...)
    [COLOR=#000000][COLOR=#0000BB]$con [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]mysql_connect[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'mysql3.freehostia.com'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'marara9_ajax'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'4239636'[/COLOR][COLOR=#007700]);
    if (![/COLOR][COLOR=#0000BB]$con[/COLOR][COLOR=#007700])
     {
     print [/COLOR][COLOR=#DD0000]'falhou conexao'[/COLOR][COLOR=#007700];
     die([/COLOR][COLOR=#DD0000]'Could not connect: ' [/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]mysql_error[/COLOR][COLOR=#007700]());
     }
    print [/COLOR][COLOR=#DD0000]'falhou conexao'[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000BB]mysql_select_db[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"marara9_ajax"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$con[/COLOR][COLOR=#007700]);
    [/COLOR][COLOR=#0000BB]$sql[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]"SELECT * FROM ficheiro WHERE id = '"[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]$q[/COLOR][COLOR=#007700].[/COLOR][COLOR=#DD0000]"'"[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000BB]$result [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]mysql_query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$sql[/COLOR][COLOR=#007700]);
    [/COLOR][/COLOR]//(...)
    
    Primeiro na coneccao, no final de estar a funcionar (penso que ja esta) coloca o "@" no statment mysql_connect, ou corres o risco de que se exitir um erro na ligaçao, o teu user e pass serao expostos na pagina. algo como:
    Código:
    [COLOR=Silver][COLOR=#000000][COLOR=#0000BB]$con [/COLOR][COLOR=#007700]= @[/COLOR][COLOR=#0000BB]mysql_connect[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'mysql3.freehostia.com'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'marara9_ajax'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'4239636'[/COLOR][COLOR=#007700]);
    
    [/COLOR][/COLOR][/COLOR] 
    depois, para que tens um print "falhou conecçao" fora do if?? se a conecçao falhar, como tens o die() dentro do if, o php sera terminado imediatamente, e tudo o que estiver em baixo nao sera executado, bem que o que esta fora/a seguir do/ao if é porque a ligaçao correu bem.
    Retira a linha: print "falhou conecçao"

    Depois:
    $sql="SELECT * FROM ficheiro WHERE id = '".$q."'";

    Tens aqui alguma confusao na tua instruçao sql, ficheiro é o nome da tua tabela? se sim, mto bem, id tambem é um campo da tabela certo? e a variavel "q" e nao "$q" a procurar :)

    muda para

    Código:
    $sql = "SELECT * FROM `ficheiro` WHERE `id`='$q'";
    
    Assim funcionara :)
    De resto nao tomei atençao, mas pareceu-me tudo bem... aqui para cima é que estava "pior".

    Esperimenta tudo o que te disse, incluido mudar os teus .html para .php

    abraço.
     

Partilhar esta Página