Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wendel

Sistema de notícia

Recommended Posts

Boa noite, amogos

 

Estou com um probleminha...

Instalei o um sistema de notícias (Supernews) e quando adiciono notícias as novas fica por baixo das velhas. Deveria ser ao contrário, as novas ficando por cima...rsrsrs

Se alguém puder dar uma olhada:

 

http://www.ideiabr.com/news/admin/adm_noticias.php

 

Login: admin

Senha: 12345

 

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom..em algum lugar deve estar fazendo um select por DATA ou ID, veja no codigo se tem esse select, ele deve estar por ex: select * from noticias order by id ASC ou order by data ASC, mude o ASC pra DESC...[]´z

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, relamente existe isso aí, e ela esta com o DESC, porém, quando coloca a notícia não opção para data e hora e fica assim depois de publicada: 00 de de 0000 - 00h00min

Como que ele irá colocar na ordem se a data e hora são zeros? O que fazer para mostrar a data e a hora?

 

o código:

 

 

<?

if(!isset($noticia)){

?>

 

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Últimas Notícias...</font><br>

<hr width="100%" color="#CCCCCC">

<?php

//Mostra todas as notícias inseridas no banco de dados e organiza em ordem

//decrescente com relação a hora de criação com um limite de 5 noticias por consulta

$resultado = mysql_query('SELECT ID, titulo, data FROM supernews ORDER BY data DESC LIMIT 0, 5');

if(!$resultado){

die("Erro na solicitação de query: " . mysql_error() . '<br>');}

 

//Verifica se há alguma noticia amazenada no banco de dados

if(mysql_num_rows($resultado) == 0){

?>

<font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="1">Atenção! Não há notícias no banco de dados.</font><br>

<?php

} else {

//Realiza um loop atrás das informações inseridas na tabela supernews

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

$id = $row['ID'];

$titulo = $row['titulo'];

$data = $row['data'];

print('<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><b>' . formatData($data) . '</b><img src="time.gif" width="15" height="14" alt="" border=0><br><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">' . htmlentities($titulo) . '</a></font></p>');

}

}

 

//Busca pela noticia com referencia ao $id selecionado

}elseif(isset($noticia)){

$id = $noticia;

$resultado = mysql_query("SELECT * FROM supernews WHERE ID=$id");

if(!$resultado){

die("Impossível visualizar esta notícia: " . mysql_error() . '<br>');

}

 

//Realiza um loop atrás das informações inseridas na tabela supernews

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

$diretorio = $row['diretorio'];

$largura = $row['largura'];

$altura = $row['altura'];

$titulo = $row['titulo'];

$conteudo = $row['conteudo'];

$data = $row['data'];

?>

<table width="100%" align="center" border="0" cellpadding="0" cellspacing="0">

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><b><?php print(htmlentities($titulo)); ?></b></font><br>

<hr color="#000000"> </td>

</tr>

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="1"><b><?php print(formatData($data)); ?></b></font><br>

<hr color="#CCCCCC">

</td>

</tr>

<tr>

<td>

<?php if($diretorio == ""){ //se o diretorio for igual a vazia isso significa que é uma noticia sem imagem e mostra so a noticia

?>

<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><?php print(nl2br(htmlentities($conteudo))); ?></font></p>

<?php } else { //caso contrario mostra a noticia com a imagem

?>

<img src="admin/<?= $diretorio; ?>" width="<?= $largura; ?>" height="<?= $altura; ?>" align="left" border="1"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><?php print(nl2br(htmlentities($conteudo))); ?></font></p>

<?php } ?>

</td>

</tr>

<tr>

<td><hr color="#CCCCCC"></td>

</tr>

<tr>

<td><div align="center"><a class="links" href="java script:self.print()" onMouseOver="window.status='Imprimir'; return true">Imprimir</a>

| <a class="links" href="index.php" target="_self">Painel de Notícias</a> | <a class="links" href="#top">Topo</a></div></td>

</tr>

<tr>

<td><hr color="#000000"></td>

</tr>

</table>

<?php

}

?>

<br>

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">+ Notícias...</font><br>

<hr width="100%" color="#CCCCCC">

<?php

//aproveita a conexao aberta para mostra as noticias diferentes da que a pessoa está lendo

$resultado1 = mysql_query("SELECT * FROM supernews WHERE ID<>$id ORDER BY data DESC LIMIT 0, 5");

if(!$resultado1){

die("Impossível visualizar esta notícia: " . mysql_error() . '<br>');

}

if(mysql_num_rows($resultado1) == 0){

?>

<font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="1">Adicione mais notícias.</font><br>

<?php

} else {

//Realiza um loop atrás das noticias inseridas na tabela supernews

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

$id = $row['ID'];

$titulo = $row['titulo'];

print('<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">» ' . htmlentities($titulo) . '</a></font><br>');

}

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha num tenho muita certeza nao...

 

mais se ao invés de você ordenar pela data você ordenar pelo ID......

 

 

Por exemplo

$resultado = mysql_query('SELECT ID, titulo, data FROM supernews ORDER BY ID DESC LIMIT 0, 5');

e ai coloca o atributo ORDER BY ID DESC...

 

Cada notiica cadastrada recebe um ID certo.... por exemplo cadastrou uma noticia agora recebe id =1 ,segunda noticia id=2 na hora da mostra você pede para mostrar em ordem decrescente....

 

 

ve ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Novato_PHPFuncionou mesmo... Valeu!Agora, e a questão da data e hora? Note que ela aparece 00 de de 0000 - 00h00min e quando vou colocar a notícia não tem opção de data e nem hora. O que fazer para ela aparecer?Desde já, agredeço a forma (mais uma vez)

Compartilhar este post


Link para o post
Compartilhar em outros sites

wendel,como você está gravando a dataposta ai o codigo da gravação da data e como esta está no BD qual o tipo de campo usado para armazenar a dataposta pra mim o arquivo arquivo funcao.php...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi,no banco de dados é assim: (tabela)CREATE TABLE supernews( ID int(5) unsigned NOT NULL AUTO_INCREMENT, diretorio TEXT, largura TEXT, altura TEXT, titulo TEXT NOT NULL, conteudo TEXT NOT NULL, data DATETIME NOT NULL, PRIMARY KEY (ID) )"; E essa aqui é a página FUNÇÃO.PHP<?php//// funcao que realiza a conexao com o banco de dados ////function conexao_mysql($host,$user,$pass,$db_super_news){global $host, $user, $pass, $db_super_news;//verifica se as variaveis (host,user,pass,db_super_news) estao setadasif(isset($host) and isset($user) and isset($pass) and isset($db_super_news)){//realiza a conexao com o banco de dados$conexao = @mysql_connect($host, $user, $pass);//checa se a conexao foi bem sucedidaif(!$conexao){print("<font color='#FF0000'>Error!! Impossível conectar-se ao MYSQL.</font>");exit();}//verifica e seleciona o banco de dadosif(!@mysql_select_db($db_super_news, $conexao)){print("<font color='#FF0000'>Error!! Impossível selecionar o banco de dados $db_super_news" . mysql_error() . '</font>');exit();}}else{print("<font color='#FF0000'>Error!! Alguma(s) da(s) variáveis (host, user, pass, db_super_news), não está atribuída!!</font>");}}//Formata a data do banco de dados MYSQL (ex.: 2004-02-08 22:56:30) para uma mais//convencional (ex.: 08 de Fevereiro de 2004 - 22h 56min).function formatData($data){$dia = substr($data, 8, 2);$mes = substr($data, 5, 2);switch ($mes) { case 1: $newmes = "Jan"; break; case 2: $newmes = "Fev"; break; case 3: $newmes = "Mar"; break; case 4: $newmes = "Abr"; break; case 5: $newmes = "Mai"; break; case 6: $newmes = "Jun"; break; case 7: $newmes = "Jul"; break; case 8: $newmes = "Ago"; break; case 9: $newmes = "Set"; break; case 10: $newmes = "Out"; break; case 11: $newmes = "Nov"; break; case 12: $newmes = "Dez"; break;}$ano = substr($data, 0, 4);$novadata = $dia . ' de ' . $newmes . ' de ' . $ano;$novahora = $novadata . ' - ' . substr($data, 11, 2) . 'h' . substr($data, 14, 2) . 'min';$datahora = $novahora;return $datahora;}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai tenta mudar um pouco o arquivo funcao.php pra ficar assim:

function formatData($data){$dia = substr($data, 8, 2);$mes = substr($data, 5, 2);switch ($mes) {case 01:$newmes = "Jan";break;case 02:$newmes = "Fev";break;case 03:$newmes = "Mar";break;case 04:$newmes = "Abr";break;case 05:$newmes = "Mai";break;case 06:$newmes = "Jun";break;case 07:$newmes = "Jul";break;case 08:$newmes = "Ago";break;case 09:$newmes = "Set";break;case 10:$newmes = "Out";break;case 11:$newmes = "Nov";break;case 12:$newmes = "Dez";break;}

 

ve se é isto ai... e testa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi,Só aparece o mês, a data e hora ainda nada... Mesmo assim, apareceu Ago (estamos em dezembro) rsrsrs...Eu já quebrei a cabeça e já estou pensando em tirar essa data e colocar outra coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá certo!!!!

 

Então vamos lá!!!!!

 

faz o seguinte na página que exibe as noticias ultimas noticias você faz assim:

 

na parte que está assim:

//Realiza um loop atrás das informações inseridas na tabela supernewswhile($row = mysql_fetch_array($resultado)){$diretorio = $row['diretorio'];$largura = $row['largura'];$altura = $row['altura'];$titulo = $row['titulo'];$conteudo = $row['conteudo'];$data = $row['data'];?>
troque para isto

while($row = mysql_fetch_array($resultado)){$diretorio = $row['diretorio'];$largura = $row['largura'];$altura = $row['altura'];$titulo = $row['titulo'];$conteudo = $row['conteudo'];$var = $row['data'];$var = explode(" ",$var);$dia = $var[0];$hora = $var[1];$dia = explode("-",$dia);$data = "$dia[2]/$dia[1]/$dia[0] às $hora";

NAs linhas em que chamava a função format data você coloca assim

print('<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><b>' [b]. $data . '[/b]</b><img src="time.gif" width="15" height="14" alt="" border=0><br><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">' . htmlentities($titulo) . '</a></font></p>');

 

amigo testa ai .... dê uma olhada neste link de onde tirei algumas informações...

 

falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

As linhas alteradas estão em negrito (menos a print) e agora a página abre sem notícias

 

NOTICIAS.PHP

 

<?php

 

* require("conexao.inc.php"); //arquivo incluido que contem todas as variaveis necessarias para conexao com o MYSQL

* require("funcao.php"); //arquivo que contem algumas funcoes basicas

*

* conexao_mysql($host,$user,$pass,$db_super_news); //funcao para conexao com o MYSQL

********************************************************************************

************************************/

 

if(!isset($noticia)){

?>

 

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Últimas Notícias...</font><br>

<hr width="100%" color="#CCCCCC">

<?php

//Mostra todas as notícias inseridas no banco de dados e organiza em ordem

//decrescente com relação a hora de criação com um limite de 5 noticias por consulta

$resultado = mysql_query('SELECT ID, titulo, data FROM supernews ORDER BY ID DESC LIMIT 0, 5');

if(!$resultado){

die("Erro na solicitação de query: " . mysql_error() . '<br>');

}

 

//Verifica se há alguma noticia amazenada no banco de dados

if(mysql_num_rows($resultado) == 0){

?>

<font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="1">Atenção! Não há notícias no banco de dados.</font><br>

<?php

} else {

//Realiza um loop atrás das informações inseridas na tabela supernews

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

$id = $row['ID'];

$titulo = $row['titulo'];

$data = $row['data'];

print('<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><b>' . $data . '</b><img src="time.gif" width="15" height="14" alt="" border=0><br><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">' . htmlentities($titulo) . '</a></font></p>');

}

}

 

//Busca pela noticia com referencia ao $id selecionado

}elseif(isset($noticia)){

$id = $noticia;

$resultado = mysql_query("SELECT * FROM supernews WHERE ID=$id");

if(!$resultado){

die("Impossível visualizar esta notícia: " . mysql_error() . '<br>');

}

 

//Realiza um loop atrás das informações inseridas na tabela supernews

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

$diretorio = $row['diretorio'];

$largura = $row['largura'];

$altura = $row['altura'];

$titulo = $row['titulo'];

$conteudo = $row['conteudo'];

$var = $row['data'];

$var = explode(" ",$var);

$dia = $var[0];

$hora = $var[1];

$dia = explode("-",$dia);

$data = "$dia[2]/$dia[1]/$dia[0] às $hora";?>

<table width="100%" align="center" border="0" cellpadding="0" cellspacing="0">

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><b><?php print(htmlentities($titulo)); ?></b></font><br>

<hr color="#000000"> </td>

</tr>

<tr>

<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="1"><b><?php print(formatData($data)); ?></b></font><br>

<hr color="#CCCCCC">

</td>

</tr>

<tr>

<td>

<?php if($diretorio == ""){ //se o diretorio for igual a vazia isso significa que é uma noticia sem imagem e mostra so a noticia

?>

<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><?php print(nl2br(htmlentities($conteudo))); ?></font></p>

<?php } else { //caso contrario mostra a noticia com a imagem

?>

<img src="admin/<?= $diretorio; ?>" width="<?= $largura; ?>" height="<?= $altura; ?>" align="left" border="1"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><?php print(nl2br(htmlentities($conteudo))); ?></font></p>

<?php } ?>

</td>

</tr>

<tr>

<td><hr color="#CCCCCC"></td>

</tr>

<tr>

<td><div align="center"><a class="links" href="java script:self.print()" onMouseOver="window.status='Imprimir'; return true">Imprimir</a>

| <a class="links" href="index.php" target="_self">Painel de Notícias</a> | <a class="links" href="#top">Topo</a></div></td>

</tr>

<tr>

<td><hr color="#000000"></td>

</tr>

</table>

<?php

}

?>

<br>

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">+ Notícias...</font><br>

<hr width="100%" color="#CCCCCC">

<?php

//aproveita a conexao aberta para mostra as noticias diferentes da que a pessoa está lendo

$resultado1 = mysql_query("SELECT * FROM supernews WHERE ID<>$id ORDER BY ID DESC LIMIT 0, 5");

if(!$resultado1){

die("Impossível visualizar esta notícia: " . mysql_error() . '<br>');

}

if(mysql_num_rows($resultado1) == 0){

?>

<font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="1">Adicione mais notícias.</font><br>

<?php

} else {

//Realiza um loop atrás das noticias inseridas na tabela supernews

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

$id = $row['ID'];

$titulo = $row['titulo'];

print('<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">» ' . htmlentities($titulo) . '</a></font><br>');

}

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém mais se habilita? Já tentei de tudo e nada...A bronca agora é a data e hora que não são exibidas corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.