Ir para conteúdo
Fórum Script Brasil
  • 0

Problema na personalização de código de fórum


cloba

Pergunta

olá colegas?!!!é o seguinte , vou passa o código e fala o que eu quero

exibe_conteudo.php

<?php

require_once("conecta_mysql.php");

//selecionando dados da tabela

$sql = "SELECT * FROM forum";

$query = mysql_query($sql);

while($sql = mysql_fetch_array($query)){

$id = $sql['id'];

$assunto = $sql["assunto"];

echo "<a href=nome.php?id=$id> <br> $assunto </a>";}

?>

<form method=post" action="respostaexibe.php">

<table width="50%" border="1" cellspacing="0" cellpadding="0">

<tr>

<td>Mensagem:</td>

<td><textarea name="assunto"></textarea></td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="enviar" value="Enviar a Mensagem"></td>

</tr>

</table>

</form>

nome.php

<?php

require_once("conecta_mysql.php");

$id = $_GET['id];

echo $id;

$sql = "SELECT * FROM forum WHERE id=$id";

$query = mysql_query($sql);

while($sql = mysql_fetch_array($query)){

$mensagem = $sql["mensagem"];

echo "Resultados para o ID $id <br> Nome: $mensagem ";

}

?>

<form method=post" action="resposta_nome.php">

<table width="50%" border="1" cellspacing="0" cellpadding="0">

<tr>

<td width="50%">Mensagem:</td>

<td width="50%"><textarea name="mensagem"></textarea></td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="enviar" value="Enviar"></td>

</tr>

</table>

</form>

resposta_nome.php

<?php

if(empty($_POST['mensagem])) {

header('Location: nome.php');

exit;

}

require_once("conecta_mysql.php");

$mensagem = $_POST['mensagem'];

$inserir = "INSERT INTO forum (assunto, mensagem, data, hora) VALUES ('' , '$mensagem' , '' , '' )";

mysql_query($inserir);

header('Location: nome.php');

mysql_close($conexao);

?>

até aí perfeito, adiciona o assunto quando digita na caixa d mensagem do exibe_conteudo.php e linka o assunto no exibe_conteudo.php e chama o nome.php e aparece a msg, como eu faço pra somar a msg quando é digitado na caixa d mensagem do nome.php ??qual o comando eu devo incrementar na página e qual seria essa página???

por. ex no nome.php

amanhã vai chover??

Sim vai chover!

Não vai chover.

obrigado galera quem puder ajudar

Link para o comentário
Compartilhar em outros sites

  • Respostas 147
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0

Ok... o problema é que o now retorna a data e a hora e se o campo for do tipo date ele não vai conseguir preencher tudo e ai vai dar essa zica... então faz assim, ao invés de no UPDATE usar = NOW(), coloca

$agora_data = date("Y-m-d");

Ai você coloca no lugar do NOW() o $agora_data...

Mas lembre-se de sempre usar os campos corretos, usar TEXT ou VARCHAR pra tudo "é pedir pra levar choque"...

Link para o comentário
Compartilhar em outros sites

  • 0

opssssss aleluia, foi agora hehehe, ao invés de usar ASC usei o DESC, já aprendi muito coisas aqui, que. nem no curso eu tive , porque eu desconheço muito comando, eu sei alguns códigosssss.

agora pra aparece o nome do usuário é só com o sistema d login né??

Editado por cloba
Link para o comentário
Compartilhar em outros sites

  • 0

Olha, eu já estou quase desistindo, pois acho que você mesmo não está lendo o que você faz... como eu sempre digo pra todo mundo que está aprendendo a programar, ANTES de aprender a linguagem aprenda a pensar no "como se desenvolve o programa", como eu disse, TODO NOVA MENSAGEM trará uma nova data que terá que ser atualizada, OK? Agora me diz uma coisinha, até onde eu me lembro, você envia as mensagens novas para o BD no arquivo resposta_nome.php, você por acaso se lembrou de incluir a rotina de update lá? Porque eu acho que não...

Aproveita e me passa a estrutura das 2 tabelas que você está usando...pois tenho certeza que existe outro erro também...

Link para o comentário
Compartilhar em outros sites

  • 0

pssssss aleluia, foi agora hehehe, ao invés de usar ASC usei o DESC, já aprendi muito coisas aqui, que. nem no curso eu tive , porque eu desconheço muito comando, eu sei alguns códigosssss.

agora pra aparece o nome do usuário é só com o sistema d login né??

Link para o comentário
Compartilhar em outros sites

  • 0

HUMMM, TIPO ASSIM, EU QUERIA COLOCAR UM LINK PRA EXCLUIR O COMENTÁRIO, MAS COMO EU FAÇO SÓ PRA AQUELE USUARIO que. POSTOU O COMENTARIO PD EXCLUIR O SEU PROPRIO COMENTARIO , E OUTRO USUÁRIO não TEM ESSE PREVILEGIO D EXCLUIR O COMENTARIO DO OUTRO USUARIO que. POSTOU ,COMO EU FAÇO ISSO??

Link para o comentário
Compartilhar em outros sites

  • 0

vamo aos poucos, então, eu to tentando fazer o seguinte,

eu tenho uma tabela 'usuarios ' id (int) auto_increment, username senha nome email e cidade tudo do tipo varchar

e no exibe_conteudo eu tentei colocar assim

<?php

require_once("conecta_mysql.php");

//selecionando dados da tabela

$username = $_GET['user'];

$resultado = mysql_query ("SELECT * FROM usuarios where username=$username'");

$sql = "SELECT * FROM forum ORDER BY data DESC"; // quando o assunto é digitado é colocado em primeiro lugar

$query = mysql_query($sql);

while($sql = mysql_fetch_array($query)){ // enquanto a variavel $sql for igual a varialve $query da um loop

$id = $sql['id]; // aqui pega todos o resultados do id do banco

$assunto = $sql["assunto"]; // aqui pega todos os resultados do assunto do banco enquanto for digitado no form.

echo "<a href=nome.php?id=$id> <br> $assunto </a>" ; // cria os link das variavel $id

/*Aqui o cara faz a query para pegar as mensagens que fazem parte do tópico em questão*/

$pega_posts = mysql_query("SELECT * FROM mensagens WHERE id_mensagem = '$id'");

/*Conta o número de mensagens*/

$resultados = mysql_num_rows($pega_posts);

/*Aqui pega o total de mensagens e adiciona 1, pois esse 1 se refere a mensagens do post inicial*/

$resultados_tot = $resultados+1;

echo "$resultados_tot Resultados". " " .$sql['data']. "<hr>";

}

?>

e o respostaexibe.php

<?php

$username = $_POST['user];

if(empty($_POST['assunto'])) {

header("Location: exibe_conteudo.php?user=$username");

exit;}

require_once("conecta_mysql.php");

$assunto = $_POST['assunto'];

$mensagem = $_POST['mensagem'];

$data = date("d/m/Y H:i:s");

$resultado = mysql_query ("SELECT * FROM usuarios where username='$username'");

$inserir = "INSERT INTO forum (assunto, mensagem, data) VALUES ('$assunto' , '$mensagem' , '$data')";

mysql_query($inserir);

mysql_query("UPDATE forum SET data = '$data' WHERE id = '$id'");

header("Location: exibe_conteudo.php?user=$username");

mysql_close($conexao);

?>

então quando eu me logo como ricardo fica assim a url

http://localhost/meu%20site/exibe_conteudo.php?user=ricardo'>http://localhost/meu%20site/exibe_conteudo.php?user=ricardo

e quando eu tento enviar o form em branco fica assim a url

http://localhost/meu%20site/exibe_conteudo.php?user=

onde está o erro?????? obrigado, onde está destacado d azul eu incrementei o comando.

será o é preciso ter duas tabela de login??

Editado por cloba
Link para o comentário
Compartilhar em outros sites

  • 0

Dessa vez eu vou fazer apenas observações, você que vai se virar para corrigir os erros...

Em primeiro lugar. para que você está usando isso:

$resultado = mysql_query ("SELECT * FROM usuarios where username='$username'");

Eu não sei se você sabe, mas você está fazendo um query (consulta) ao banco, mas só isso, você não está utilizando a query para nada...

Quanto ao fato do user está em branco, lembre-se que em todas as páginas você vai ter que pegar o nome do usuário ($_GET...) e depois passar esse valor para a querystring... e com certeza você não está fazendo isso...

Link para o comentário
Compartilhar em outros sites

  • 0

ok, então vamo resolver o 1º a variavel,

então no exibe_conteudo.php

<?php

require_once("conecta_mysql.php");

//selecionando dados da tabela

$username = $_GET['username'];

$sql = "SELECT * FROM forum ORDER BY data DESC"; // quando o assunto é digitado é colocado em primeiro lugar

$query = mysql_query($sql);

while($sql = mysql_fetch_array($query)){ // enquanto a variavel $sql for igual a varialve $query da um loop

$id = $sql['id']; // aqui pega todos o resultados do id do banco

$assunto = $sql["assunto"]; // aqui pega todos os resultados do assunto do banco enquanto for digitado no form.

echo "<a href=nome.php?id=$id> <br> $assunto </a>" ; // cria os link das variavel $id

/*Aqui o cara faz a query para pegar as mensagens que fazem parte do tópico em questão*/

$pega_posts = mysql_query("SELECT * FROM mensagens WHERE id_mensagem = '$id'");

/*Conta o número de mensagens*/

$resultados = mysql_num_rows($pega_posts);

/*Aqui pega o total de mensagens e adiciona 1, pois esse 1 se refere a mensagens do post inicial*/

$resultados_tot = $resultados+1;

echo "$resultados_tot Resultados". " " .$sql['data']. "<hr>";

}

?>

e no respostaexibe.php

$username = $_POST['username];

if(empty($_POST['assunto']) && empty($_POST['mensagem'])) {

header("Location: exibe_conteudo.php?user=$username");

exit;

}

require_once("conecta_mysql.php");

$assunto = $_POST['assunto'];

$mensagem = $_POST['mensagem'];

$data = date("d/m/Y H:i:s");

$inserir = "INSERT INTO forum (assunto, mensagem, data) VALUES ('$assunto' , '$mensagem' , '$data')";

mysql_query($inserir);

mysql_query("UPDATE forum SET data = '$data' WHERE id = '$id'");

header("Location: exibe_conteudo.php?user=$username");

mysql_close($conexao);

?>

eae está faltando alguma coisa??? porque eu logo aparece a URL

http://localhost/meu%20site/exibe_conteudo.php?user=ricardo

e quando eu envio em branco o formulario

aparece assim

http://localhost/meu%20site/exibe_conteudo.php?user=ricardo

Link para o comentário
Compartilhar em outros sites

  • 0

O que o nome do usuário tem a ver com o envio do formulário? O fato de estar em branco ou não é um coisa, o nome do usuário serve para outra bem diferente... e mais uma coisa, você vai ter que passar o nome do cara nos links, ou seja lá no <a href... assim como você passa o id=$id...

Link para o comentário
Compartilhar em outros sites

  • 0

isso aí, mas tentei fazer isso, mas eu preciso criar outro link além desse "<a href=nome.php?id=$id> <br> $assunto </a>" ????

eu tentei fazer assim no exibe_conteudo

$username = $_GET['username'];

$resultado = "SELECT * FROM usuarios where username='$username'";

$exe = mysql_query($resultado);

$login = mysql_result($exe,0,username);

mas da erro Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4 in D:\wamp\www\meu site\exibe_conteudo.php on line 11

porque??

Editado por cloba
Link para o comentário
Compartilhar em outros sites

  • 0

então eu to logado como ricardo, na tabela de username tem doi usuarios ricardo e ronaldo , tem algum prob.?? se tiver dois usuarios na tabela inserida eu não posso usar o mysql_result??

Editado por cloba
Link para o comentário
Compartilhar em outros sites

  • 0

Pode... então ou não existe uma coluna chamada username ou '$username' está em branco...

Testa, troca isso:

$exe = mysql_query($resultado);

$login = mysql_result($exe,0,username);

Por isso:

$exe = mysql_query($resultado);

if (mysql_num_rows($exe) == 0){echo "Não tem nenhum registro com o nome de $username.;

}else{

$login = mysql_result($exe,0,username);

//Coloque o } após o final do código...

Link para o comentário
Compartilhar em outros sites

  • 0

putz cara , esatrnho, está falando que. não tem nenhum resgistro, mas o campo existe na tabela o que será hein??

então eu tenho uma tabela usuarios, e nessa tabela tenho id auto_increment do tipo int

e o username e senha tudo do tipo varchar tem algum prob.?

Editado por cloba
Link para o comentário
Compartilhar em outros sites

  • 0

Ele retorna "Não tem nenhum registro com o nome de NOME_DO_USUARIO"? ou retorna apenas: "Não tem nenhum registro com o nome de"?

Troque isso também:

$resultado = "SELECT * FROM usuarios where username='%$username%'";

Link para o comentário
Compartilhar em outros sites

  • 0

então eu tenho uma tabela usuarios, e nessa tabela tenho id auto_increment do tipo int

e o username e senha tudo do tipo varchar tem algum prob.?

mostra na tela assim

Não tem nenhum registro com o nome de

porque será??

$resultado = "SELECT * FROM usuarios where username='%$username%'";

não funcionou ainda

Editado por cloba
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.




  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...