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

[PHP/MySQL] dúvida simples

Discussão em 'Web Development' iniciada por SlashString, 15 de Agosto de 2008. (Respostas: 9; Visualizações: 701)

  1. SlashString

    SlashString Power Member

    Boa tarde a todos!

    Estou encravado numa questão que até deve ser simples, mas já dei tantas voltas e não consegui resolver, que já não sei mais que pensar..

    É simples, eu estou a imprimir uma listagem de registos de uma tabela da BD. O código que estou a usar é simples:
    PHP:
     
    $result 
    mysql_query("SELECT * FROM reservas order by data");
    while(
    $x mysql_fetch_assoc($result))
    {
        echo 
    "<tr>";
        echo 
    "<td class=\"style_table\">";
        echo 
    $x['nome'] . " " $x['apelido'] . "<br>" $x['email'];
        echo 
    "</td>";
        echo 
    "<td class=\"style_table\">";
        echo 
    $x['telemovel'];
        echo 
    "</td>";
        echo 
    "<td class=\"style_table\">";
        echo 
    $x['participantes'];
        echo 
    "</td>";
     echo 
    "<td class=\"style_table\">";
        echo 
    $x['data'] . " | " .$x['duracao'];
        echo 
    "</td>";
     echo 
    "<td class=\"style_table\">";
        echo 
    $x['pacote'];
        echo 
    "</td>";
        echo 
    "<td class=\"style_table\">";
        echo 
    $x['comentarios'] . "<br><br> ";
        echo 
    "</td>";
    }
    Com isto imprimo uma listagem linha a linha, onde cada tipo de dados é colocado numa célula, onde existe uma certa lógica visual. O que não estou a conseguir fazer é o seguinte:
    por vezes os comentários são muito extensos, o que estraga tudo.. portanto, a solução que pretendo implementar é deixar no sitio do comentário algo do tipo "ler comentário", onde o utilizador ao clicar, abre o comentário noutra página (tipo thickbox..).

    Se ajudar, a tabela tem como chave primária um "ID" ao qual pertence apenas 1 comentário..

    Agradeço desde já a ajuda,
    e desculpem mas tive problemas na edição do tópico, por isso não ficou bem colocado :P

    Cumprimentos
     
    Última edição: 15 de Agosto de 2008
  2. MPalhas

    MPalhas Power Member

    e a dúvida é...? :P
     
  3. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Ele está a modificar o post. Deve ter submetido por engano ;)

    edit - já modificou mas continua incompleto o.O
     
  4. SlashString

    SlashString Power Member

    Estava a editar sim, e voltou a fazer mal o post.. tinha a ver com o código php que colei aí.. deu conflito, mas eu retirei a parte que estava a dar problemas, visto que também não influenciava na resulução!

    Peço desculpa :p

    Cumprimentos
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    No problem :D

    Em relação ao post (agora que já está pronto :P ), não podes pôr um width fixo? Isto é, cada coluna tem um tamanho definido? Assim, quando um comentário é muito extenso, ocupa mais espaço em altura e não em comprimento.

    Em relação a saber o comprimento, vou ver se o PHP tem algum equivalente do TextWidth(). Se tiver, é de certeza possível.
    edit - ok, lembrei-me agora que isso depende do tipo de letra e tamanho, pelo que é muito mais complexo do que pensava :x

    Se quiseres, podes limitar o nº de caracteres por linha. Isto é, se uma linha tiver mais do que 80 caracteres, aparece esse aviso.
     
    Última edição: 15 de Agosto de 2008
  6. SlashString

    SlashString Power Member

    Não éra necessário contar os caracteres porque não queria mesmo que fosse impresso o comentário, queria mesmo só uma ligação "ler comentário" para outra página onde mostrasse o comentário correcto! Isso é o que não consigo fazer.. não estou a ver como passar informação, tipo o ID do comentário para a outra página..:confused:

    Cumprimentos:beerchug:
     
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Passas para uma página, tipo lercomentario.php, e passas o ID do comentário como $_GET.
    O que este ficheiro faria seria ler o $_GET e ir buscar o comentário correspondente ao ID que passas.

    Existe uma coluna ID na tabela, certo? Se não existir, "data" é um timestamp?
     
  8. SlashString

    SlashString Power Member

    Existe um ID na tabela como cháve primária sim.. e a data também é timestamp..

    De que forma é que posso passar o ID para esse 'lercomentario.php' ?
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Se existe um ID, vai por aí, já que é impossível haverem IDs repetidos, mas não é impossível haverem dois comentários colocados no mesmo segundo :)

    PHP:
    echo "<a href='lercomentario.php?id=" $x['id'] . "'>Ver comentário</a>";
    O lercomentario.php trata de ir buscar esse ID ($id = $_GET['id']) e faz um query à BD para ir buscar o comentário correspondente.

    Já agora, deixo-te um aviso: no lercomentario.php, começa assim:
    PHP:
    $id $_GET['id'];
    if(!
    is_numeric($id)) die("O ID está errado.");
    ou algo do género, e introduz a variável $id (e não a $_GET['id']) na base de dados. Isto é para prevenir SQL Injection.
     
    Última edição: 15 de Agosto de 2008
  10. SlashString

    SlashString Power Member

    :009:
    O meu problema estava em não conseguir fazer esse echo com a opção do id!!
    Muito obrigado Kayvlim!! :D

    Cumprimentos
     

Partilhar esta Página