Jump to content
MK2

Lista de Mensagens

Recommended Posts

MK2

Boas people...

Tenho de fazer para a minha PAP um site com o tema Loja de música online. Está mais ou menos orientado, mas tenho uma dúvida...  Estou a fazer uma zona de enviar e receber mensagens. Mas na zona de receber mensagens queria que quando carregasse no assunto abrisse uma nova página com o corpo da mensagem.

O problema é como dizer que é a mensagem em que cliquei...

Vai abaixo uma imagem do projecto. Esta tem duas mensagens, como digo que quero que apareça o texto completo da segunda ao clicar no assunto?

mensagensj.png

Aguardo respostas.

:(

Grande abraço


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
RobinHood

Mas ninguém ajuda o rapaz.... óh pessoal do Php....

If Eu entendesse de php then
Eu ajudava-o
else
nada feito
end if

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Ola MK2...

Sabes fazer links? (<a></a>) ? É o que tens que fazer nessa tua lista, no campo dos assuntos. e esse link deverá apontar para um script (se quiseres até pode ser o mesmo, chamemos esse script de lista.php)....

Assim, farias algo do genero, para cada assunto:

<a href="lista.php?id=<?php echo $id_do_assunto;?>"><?php echo $assunto;?></a>

Depois terias que alterar um pouco o teu script de modo a que:

<?php
# Se estiver definido no endereço o id
if( isset( $_GET['id'] ) )
{
    # Vais à base de dados buscar a mensagem com esse id:
    $result = @mysql_query('SELECT * FROM mensagens WHERE id=' . @mysql_real_escape_string($_GET['id']));
    if( is_resource($result) && (mysql_num_rows($result)>0)
    {
        $mensagem = mysql_fetch_object($result);
        echo $mensagem->corpo_da_mensagem;
    }
    else
        echo "Não foi encontrado o registo especificado. <a href='lista.php'>Voltar</a>";
}
else
{
    /** Código de Listagem **/
}
?>

Share this post


Link to post
Share on other sites
ruimcosta

Biba,

Só um pormenor (o será pormaior?) Utilizas o @ antes da instrução mysql_query. Se acontecer erros de sql, não verás o erro e não verás a "coisa" a funcionar em condições.

O ideal será enquanto desenvolves nunca utilizar o @ Não será por esconderes os erros que eles irão desaparecer.

Bom fim de semana


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
brunoais

E seria boa ideia saber quando o mysql_query() devolve false.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
MK2

Amigo, sou novato nisto... Como faço o script?

E não consigo por esta linha de código a funcionar:

<a href="lista.php?id=<?php echo $id_do_assunto;?>"><?php echo $assunto;?></a>

Estou a usar:

echo "<a href="lista.php?id=<?php echo $id_mensagem;?>"><?php echo $assunto;?></a>";


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
ruimcosta

Altera para

echo '<a href="lista.php?id='.$id_mensagem.'">'.$assunto.'</a>';


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
MK2

Mas eu estou a ir buscar a informação à base de dados...


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
MK2



<?php
session_start();

if( !isset($_SESSION['correcto']) || $_SESSION['correcto']!=1)
{
echo "Não esta autorizado.";
echo "<meta http-equiv=\"refresh\" content=\"3;url=./administrador.php\">";
die();
}
?>

<html>
<head>
<title>Lista de Mensagens</title>
</head>


<body>

<?php

$con = mysql_connect("localhost", "root", "vertrigo");
if (!$con)
{
die('Problema na ligação ' . mysql_error());
}
mysql_select_db("loja_musica", $con);

$result = mysql_query("SELECT * FROM mensagens");


//Verifica se algum registo foi devolvido
$numero_registos = mysql_num_rows($result);


echo "<h1 align=center>Mensagens</h1>";


echo "<table border=2>";
echo "<tr>";
echo "<td>ID da Mensagem</td> <td>Assunto:</td> <td>De:</td> <td>Para:</td>";
echo "</tr>";

while($row = mysql_fetch_array($result))
{

echo "<tr>";
echo "<td>".$row['id_mensagem']."</td>";


echo '<a href="lista.php?id='.$id_mensagem.'">'.$assunto.'</a>';

//echo "<td><a href=\"./ler_mensagem.php\"><h4> ".$row['assunto']." <h4></td>";



echo "<td>".$row['from_mensagem']."</td>";

echo "<td>".$row['to_mensagem']."</td>";




echo "</tr>";
echo "<br>";
}
echo "</table>";

echo "<a href=\"./ler_mensagem.php\"><h4> Voltar <h4>";
echo "<a href=\"./gestao-mensagens.php\"><h4> Voltar <h4>";





mysql_close($con);


?>





</body>


</html>

este é o código que tenho para obter a lista de todas as mensagens.. Agora com as modificações de ultima hora que foram postas aqui.

Agora com as modificações, aparece isto:

mensagens2.png


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
brunoais

echo '<a href="lista.php?id='.$id_mensagem.'">'.$assunto.'</a>';

passa a:

echo '<a href="lista.php?id='.$row['id_mensagem'].'">'.$row['assunto'].'</a>';

Na parte do assunto n tenho a certeza mas acho ser isso.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
MK2

Ok, essa parte já funciona... ;D


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
MK2

Agora como faço para ele mostrar essa mensagem como se fosse um mail?

<?php
# Se estiver definido no endereço o id
if( isset( $_GET['id'] ) )
{
    # Vais à base de dados buscar a mensagem com esse id:
   $result = @mysql_query('SELECT * FROM mensagens WHERE id_mensagem=' . @mysql_real_escape_string($_GET['id']));
    if( is_resource($result) && (mysql_num_rows($result)>0)
    {
        $mensagem = mysql_fetch_object($result);
        echo $mensagem->corpo_da_mensagem;
    }
    else
        echo "Não foi encontrado o registo especificado. <a href='lista.php'>Voltar</a>";
}
else
{
    /** Código de Listagem **/
}
?>

Assim dá erro na linha 8


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
MK2

Dá-me sempre isto: "Não foi encontrado o registo especificado."

Dá para explicar o que o codigo faz exactamente? É que ainda não consegui perceber...


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Agora como faço para ele mostrar essa mensagem como se fosse um mail?

<?php
# Se estiver definido no endereço o id
if( isset( $_GET['id'] ) )
{
    # Vais à base de dados buscar a mensagem com esse id:
   $result = @mysql_query('SELECT * FROM mensagens WHERE id_mensagem=' . @mysql_real_escape_string($_GET['id']));
    if( is_resource($result) && (mysql_num_rows($result)>0)
    {
        $mensagem = mysql_fetch_object($result);
        echo $mensagem->corpo_da_mensagem;
    }
    else
        echo "Não foi encontrado o registo especificado. <a href='lista.php'>Voltar</a>";
}
else
{
    /** Código de Listagem **/
}
?>

Assim dá erro na linha 8

Ups... -.- faltava um )'s :( (ou tinha um a mais, depende da perspectiva :) ...

Onde tens:

if( isset( $_GET['id'] ) )
{
    # Vais à base de dados buscar a mensagem com esse id:
   $result = @mysql_query('SELECT * FROM mensagens WHERE id_mensagem=' . @mysql_real_escape_string($_GET['id']));

Deverá ficar:

if( isset( $_GET['id'] ) )
{
    $con = mysql_connect("localhost", "root", "vertrigo");
    if (!$con)
    {
        die('Problema na ligação ' . mysql_error());
    }
    mysql_select_db("loja_musica", $con);
    # Vais à base de dados buscar a mensagem com esse id:
   $result = @mysql_query('SELECT * FROM mensagens WHERE id_mensagem=' . @mysql_real_escape_string($_GET['id']));

Já agora, como podes perceber, eu apresentei esse código quando ainda não tinhas posto 1 linha de código... É lógico que assim tive que colocar código genérico. Onde tens "lista.php", deves alterar para o ficheiro actual: 'lista_mensagens.php'

Share this post


Link to post
Share on other sites
MK2

Bom dia.. Peço desculpa pela ausência mas é que o meu pc de casa não esta a correr o vertrigo nem outro servidor local de web então não consegui testar as linhas de código...

Substitui as linhas de código pelas que o mAiN_iNfEcTiOn me deu. E aparece isto:

83085448.png

Agora com que código é que vou buscar a base de dados?

echo "ID:".$row['id_mensagem']."<br><br>";

echo "<br>Assunto: ".$row['assunto']."<br>";

echo "<br>De: ".$row['from_mensagem']."<br>";

echo "<br>Email: ".$row['email']."<br>";

echo "<br>Para: ".$row['to_mensagem']."<br>";

echo "<br>Mensagem: ".$row['mensagem']."<br>";

^^

Este é o que tenho agora... Mas assim não dá.. A cada ida à base de dados ele dá o erro.

;D


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Bastará que, onde tens:

<?php
        $mensagem = mysql_fetch_object($result);
        echo $mensagem->corpo_da_mensagem;

Mudes para:

<?php
        $row = mysql_fetch_assoc($result);

testa ;) e depois se não der (ou se der erro) coloca aqui o código que tens actualmente para te poder ajudar nas correcções código.

Abraço

Share this post


Link to post
Share on other sites
MK2

Mas é que agora já não tinha essa parte... Tinha o código assim:

<?php
# Se estiver definido no endereço o id
if( isset( $_GET['id'] ) )
{
    $con = mysql_connect("localhost", "root", "vertrigo");
    if (!$con)
    {
        die('Problema na ligação ' . mysql_error());
    }
    mysql_select_db("loja_musica", $con);
    # Vais à base de dados buscar a mensagem com esse id:
  $result = mysql_query('SELECT * FROM mensagens WHERE id_mensagem=' . @mysql_real_escape_string($_GET['id']));
  
  
  $numero_registos = mysql_num_rows($result);
  





  


echo "<br>Assunto: ".$row['assunto']."<br>";

echo "<br>De: ".$row['from_mensagem']."<br>";

echo "<br>Email: ".$row['email']."<br>";

echo "<br>Para: ".$row['to_mensagem']."<br>";

echo "<br>Mensagem: ".$row['mensagem']."<br>";





echo "<br>";
  
  
} 
  
  
  
?>


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites
MK2

Já funciona... Muito obrigado mesmo...

;D

Obrigado a todos.

(Topic Solved)

Abraço


Cumps;Mk2_______________________________________________Se não fosse o C estaríamos a usar Pasal, obol e Basi ...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.