Estou com um problema na exibição das mensagens de meu livro de visitas, ou seja o php esta causando um erro serio no bd.
A principio ele funciona perfeitamente, mais passado o primeiro mes ele começou a agruparar a mensagens de forma errada, ou seja apenas pelo valor do dia
TIPO:
02/01/2010 1° mensagem
02/02/2010 2° mensagem
02/03/2010 3° mensagem
03/01/2010 4° mensagem
03/02/2010 5° mensagem
No bd eu tentei mudar o campo data (QUE ESTA EM VARCHAR) para DATE e depois para DATELINE e o resultado foi uma correção nas ordens das postagens, ou seja a mensagem que era postada e se agrupava seguindo a ordem dos trinta dias do mes, passou a ser encaminhada para o local correto, mais com um erro de interpretação, onde alguns valores de texto somem, e os valores numéricos assumem o valor zero, se transformando ainda em exibição estilo americano.
EX:
0000/00/00
Se alguém souber o que fazer posta ai, já analizei o manual do MySQL ele até atenua esse erro, mais ressalta que o problema acontece quando um valor não é reconhecido pelo bd, tornando assim os valores zero, isso para o caso de DATE e DATELINE, para VARCHAR não ressaltam nada a respeito de interpretação de valores de data.
Já tentei no forum do MySQL e lá ninguém conseguem me dar uma solução que realmente resolva o meu problema.
Vou postar os codigos que eu acho que estejam interfirindo nessa exibição para que tenham uma noção primaria da coisa
Esse é o codigo de exibição das mensagens
<?
include ("conectar.php");
$seleciona = mysql_query("SELECT * FROM `mural` `utf8` ORDER BY `data` DESC LIMIT 0, 10") or die(mysql_error());
//acima nós selecionamos a tabela
while ($dados = mysql_fetch_array($seleciona)){
$variavel01 = $l["data"];
$variavel02 = date('d/m/Y', strtotime($variavel01));
$nome = $dados["nome"];
$email = $dados["email"];
$mensagem = nl2br($dados["mensagem"]);
$data = $dados["data"];
echo"<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"964\" id=\"AutoNumber1\">
<tr>
<td bgcolor=\"#C0C0C0\">$data</td>
</tr>
<tr>
<td><b>Nome:</b> $nome<BR> <b>E-mail:</b> <a href=\"mailto:$email\">
$email</a>
<p><b>Mensagem:</b><br>$mensagem</br></p></td>
</tr>
</table><BR>";
}
?>
E esse é o codigo de verificação
<?
date_default_timezone_set('America/Sao_Paulo');
include ("conectar.php");
$ip = $_SERVER['REMOTE_ADDR'];
//inclui o nosso arquivo de conexão com o bd
$nome = $_POST['nome'];
$email = $_POST['email'];
$mensagem = $_POST['mensagem'];
//acima resgatamos as variáveis previamente enviadas pelo formulário
$hora = date("H:i");
$data = date("d/m/Y");
$datehora = "A mensagem foi postada em $data às $hora";
/*acima fazemos uma variável que receberá as horas, minutos, dia, mês e ano em que a mensagem foi postada*/
if (strlen($nome) < 4)
echo '<p align="center">Escreva seu nome!<BR><a href="java script:history.back(1);">voltar</a></p>';
elseif (strlen($email) <= 4)
echo '<p align="center">E-mail inválido!<BR><a href="java script:history.back(1);">voltar</a></p>';
elseif (strlen($mensagem) <= 4)
echo '<p align="center">Sua mensagem deve conter mais de 4 caracteres!<BR><a href="java script:history.back(1);">voltar</a></p>';
else{
mysql_query("INSERT INTO mural ( nome , email , mensagem , data , ip) VALUES ( '$nome' , '$email' , '$mensagem' , '$datehora' , '$ip' ) ") or die(mysql_error());
echo '<p align="center"><b><font
size=6><font color="#FF0000">Sua mensagem foi enviada com sucesso!</font></font
size=6></b></p>';
}
/*depois da rotina de confirmação do preenchimento dos campos, inserimos os valores deles dentro da nossa tabela*/
?>
Pergunta
Añd®é™
Muito boa noite a todos!
Estou com um problema na exibição das mensagens de meu livro de visitas, ou seja o php esta causando um erro serio no bd.
A principio ele funciona perfeitamente, mais passado o primeiro mes ele começou a agruparar a mensagens de forma errada, ou seja apenas pelo valor do dia
TIPO:
02/01/2010 1° mensagem
02/02/2010 2° mensagem
02/03/2010 3° mensagem
03/01/2010 4° mensagem
03/02/2010 5° mensagem
No bd eu tentei mudar o campo data (QUE ESTA EM VARCHAR) para DATE e depois para DATELINE e o resultado foi uma correção nas ordens das postagens, ou seja a mensagem que era postada e se agrupava seguindo a ordem dos trinta dias do mes, passou a ser encaminhada para o local correto, mais com um erro de interpretação, onde alguns valores de texto somem, e os valores numéricos assumem o valor zero, se transformando ainda em exibição estilo americano.
EX:
0000/00/00
Se alguém souber o que fazer posta ai, já analizei o manual do MySQL ele até atenua esse erro, mais ressalta que o problema acontece quando um valor não é reconhecido pelo bd, tornando assim os valores zero, isso para o caso de DATE e DATELINE, para VARCHAR não ressaltam nada a respeito de interpretação de valores de data.
Já tentei no forum do MySQL e lá ninguém conseguem me dar uma solução que realmente resolva o meu problema.
Vou postar os codigos que eu acho que estejam interfirindo nessa exibição para que tenham uma noção primaria da coisa
Esse é o codigo de exibição das mensagens
E esse é o codigo de verificação Editado por Añd®é™Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.