
Paginação - "wam Sistema De Notícias" Ajuda
#1
Posted 26/05/2007, 01:06
Bom venho aqui pedir a ajuda de alguém que possa me ajudar na paginação do script que estou usando num site de um amigo "WAM Sistema de Notícias",
Já tentei muitos scripts de paginação e sem sucesso, todos dá algum tipo de erro que não consigo solucionar.
Espero que alguém com mais experiência que eu possa me dar uma força.
Segue abaixo alguns dados do script
Obrigado desde já pela atenção de todos...
__________________________________________________ _______________
FUNCOES.PHP
__________________________________________________ _______________
<?php
// Funçao para conectar-se com o Banco de Dados. Retorno = O sucesso da operacao (V ou F)
function conectaBancoDados() {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
$resultado = false; // Retorno da Funçao (default = falso). Indica o sucesso da conexao.
// Tenta conectar-se ao Banco de Dados.
if (@mysql_connect($servidor, $usuarioBd, $senhaBd)) {
$resultado = true;
}
return $resultado;
} // Fim da funçao conectaBancoDados.
// Funcao para adicionar uma noticia ao Sistema. Retorno = nenhum
// Parâmetro 1 - A notícia que será adicionada.
// Parâmetro 2 - O link da notícia.
function adicionaNoticia($noticia, $imagem, $titulo) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
// Tenta conectar-se ao Banco de Dados mostrando uma mensagem de erro caso contrário.
if(!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "INSERT INTO $tabela(data, noticia, titulo, imagem) VALUES(now(), '$noticia', '$titulo', '$imagem')";
// Executa o Comando no Banco de Dados mostrando uma mensagem de erro em caso de falha.
if (mysql_db_query($bancoDados, $comandoSql)) {
print("<center><strong>Notícia inserida com sucesso!</strong></center>");
}
else print("<center><strong>Notícia nao inserida!</strong></center>");
mysql_close(); // Nao obrigatoria, porém recomendado.
}
} // Fim da funçao adicionaNoticia.
// Funcao para apagar uma notícia. Retorno = nenhum.
// Parâmetro único - O id da notícia que será deletada.
function apagarNoticia($idNoticia) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
// Tenta conectar-se ao Banco de Dados mostrando uma mensagem de erro caso contrário.
if(!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "DELETE FROM $tabela WHERE id = '$idNoticia'";
// Executa o Comando no Banco de Dados mostrando uma mensagem de erro em caso de falha.
if (mysql_db_query($bancoDados, $comandoSql)) {
print ("<center><strong>Notícia deletada com sucesso!</strong></center>");
}
else print("<center><strong>Notícia nao deletada!</strong></center>");
mysql_close();
}
} // Fim da funçao apagarNoticia.
// Funcao para mostrar as noticias cadastradas no sistema com opcao de exclusao. Versao administrativa.
function mostraNoticiasAdmin() {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
if (!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo FROM $tabela ORDER by data";
// Joga todos os dados da pesquisa para a variavel dados.
$dados = mysql_db_query($bancoDados, $comandoSql);
// Mostra todos as noticias do sistema mostrando uma mensagem de erro em caso de falha.
if ($dados) {
// Cria uma tabela com os resultados.
print("<table width = '50%' align = 'center' border = '1'>");
print("<tr><td><strong>DATA</strong></td><td><strong>NOTÍCIA</strong></td></tr>");
while ($linha = mysql_fetch_array($dados)) {
print("<tr><td>$linha[data_formatada]</td><td>$linha[titulo]</td><td><a href='admin.php?remover=1&id=$linha[id]'><strong>Remover</strong></a></td></tr>");
}
print("</table>");
}
else print("<center><strong>Erro na exibiçao das notícias!</strong></center>");
}
} // Fim da funçao mostraNoticiasAdmin.
// Funcao para mostrar as noticias cadastradas no sistema. Versao do usuário.
// Parâmetro Único - Quantidade de notícias que será exibida.
function mostraNoticias($quantidadeNoticias) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
if (!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo, noticia, imagem FROM $tabela ORDER BY data_formatada DESC";
// Joga todos os dados da pesquisa para a variavel dados.
$dados = mysql_db_query($bancoDados, $comandoSql);
// Mostra todos as noticias do sistema mostrando uma mensagem de erro em caso de falha.
if ($dados) {
$i= 0; // Variável de controle da quantidade de notícias que será exibida
// Cria uma tabela com os resultados.
print("<table width = '100%' align = 'center' border = '1'>");
while (($linha = mysql_fetch_array($dados)) && ($i < $quantidadeNoticias)) {
// Formata a notícia para que apareçam apenas os 150 primeiros caracteres.
@$noticia_formatada = substr($linha[noticia], 0, 150)."... .:: Saiba Mais ::.";
print("<tr><td colspan=' 3'><div align='center'><strong>$linha[data_formatada] - $linha[titulo]</strong></div></td></tr>");
print("<tr><td width='5%' valign='top'><div align='left'><img src='img_noticias/$linha[imagem]' alt='sem imagem' width='70' height='60'></div></td><td width='95%' valign='top'><div align='left'><a href='mostrar_noticia.php?id=$linha[id]'>$noticia_formatada</a></div></td></tr>");
print("<tr><td colspan='2'><div align='left'><hr></div></td></tr>");
$i++;
}
print("</table>");
}
else print("<center><strong>Erro na exibiçao das notícias!</strong></center>");
}
} // Fim da funçao mostraNoticias.
// Funçao para mostrar as notícias individualmente.
// Parâmetro único - O Id da notícia que será exibida.
function mostraNoticiaId($id) {
include("config.php"); // Inclui o arquivo de configuraçao do Banco de Dados.
if (!conectaBancoDados()) {
print("<center><strong>Nao foi possível estabelecer conexao com o Banco de Dados!</strong></center>");
}
else {
// Comando que será executado no Banco de Dados.
$comandoSql = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo, noticia, imagem FROM $tabela WHERE id = '$id'";
// Joga todos os dados da pesquisa para a variavel dados.
$dados = mysql_db_query($bancoDados, $comandoSql);
// Mostra todos as noticias do sistema mostrando uma mensagem de erro em caso de falha.
if ($dados) {
// Cria uma tabela com a notícia.
print("<table width = '100%' align = 'center' border = '1'>");
$linha = mysql_fetch_array($dados);
print("<tr><td colspan=' 2'><div align='center'><strong>$linha[data_formatada] - $linha[titulo]</strong></div><br></td></tr>");
print("<tr><td colspan=' 2'><div align='center'><img src='img_noticias/$linha[imagem]' alt='sem imagem'></div><br></td></tr>");
print("<tr><td width='100%' valign='top'><div align='justify'>$linha[noticia]</div></td></tr>");
print("<tr><td colspan=' 2'><div align='left'><hr></div></td></tr>");
print("</table>");
}
else print("<center><strong>Erro na exibiçao da notícia!</strong></center>");
}
} // Fim da funçao mostraNoticiaId.
// Funçao para fazer o upload da imagem da notícia.
function uploadImagem() {
// Pega a imagem enviada através do formulário. Nome temporário e verdadeiro.
@$imagem_temp= $_FILES['imagem']['tmp_name'];
@$imagem_real= $_FILES['imagem']['name'];
// O Upload só é efetuado se a imagem for do tipo gif ou jpg.
if (($_FILES['imagem']['type'] == "image/pjpeg") || ($_FILES['imagem']['type'] == "image/gif")) {
// Move a imagem para a pasta de imagens. Mostra mensagem de erro em caso de falha.
if (move_uploaded_file($imagem_temp, "img_noticias/$imagem_real")) {
print("<center><strong>Imagem enviada com sucesso!</strong></center>");
}
else print("<center><strong>Sucesso no cadastro!</strong></center>");
}
else print("<center><strong>A imagem não é do tipo jpg ou gif!</strong></center>");
} // Fim da funçao uploadImagem.
?>
__________________________________________________ _______________
Em toda página que quero mostrar as notícias tem que colocar o include abaixo se não, não funciona.
include("funcoes.php");
mostraNoticias(10);
#2
Posted 29/05/2007, 15:32
Vc esta com sorte!
Estava incrementando esse msm código então vou postar pra vc... prontinho... funcionando!!!
Obs: Você vai mostrar as noticias incluindo a pagina(mostrar.php)
Você vai escolher quantos registros vão ser exibidos dentro do código da página (mostrar.php) no local indicado $total_reg="5" sendo que vc vai trocar o "5" pelo numero de registros desejado.
A conexão com o banco de dados vai ser feita tb diretamente no código da página (mostrar.php).
E por ultimo, na sentença que faz a busca no sql... onde esta "FROM $tabela" vc vai substituir pelo nome da tabela que vc criou no bd, se vc tiver deixado padrão será "noticias"...Assim ficando "FROM noticias...".
Vamos ao código:
mostrar.php
________________________________________________________________________________________
// By soltim
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
font-family: sans-serif,Verdana, Arial, Helvetica, ;
font-size: 12px;
color: #000000;
}
body {
background-color: #DEEBF5;
}
a {
font-size: 10px;
color: #000000;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #000000;
}
a:hover {
text-decoration: underline;
color: #BA55D3;
}
a:active {
text-decoration: none;
color: #000000;
}
-->
</style></head>
<body>
<?php
$conn = mysql_connect("localhost","dbuser","dbpassword");
$banco = mysql_select_db("db");
?>
<?php
$busca = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo, noticia, imagem FROM $tabela ORDER BY data_formatada DESC";
?>
<?php
$total_reg = "5"; // Aqui vc coloca o numero de registros por pagina
?>
<?php
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
?>
<?php
$inicio = $pc - 1;
$inicio = $inicio * $total_reg;
?>
<?php
$limite = mysql_query("$busca LIMIT $inicio,$total_reg");
$todos = mysql_query("$busca");
$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = ceil($tr / $total_reg); // verifica o número total de páginas
// vamos criar a visualização
while ($dados = mysql_fetch_array($limite)) {
$linha = ($dados);
print("<tr><td colspan=' 3'><div align='center'><strong>$linha[data_formatada] - $linha[titulo]</strong></div></td></tr>");
print("<tr><td width='5%' valign='top'><div align='left'><img src='img_noticias/$linha[imagem]' alt='sem imagem' width='70' height='60'></div></td><td width='95%' valign='top'><div align='left'><a href='mostrar_noticia.php?id=$linha[id]'>$noticia_formatada</a></div></td></tr>");
print("<tr><td colspan='2'><div align='left'><hr></div></td></tr>");
// agora vamos criar os botões "Anterior e próximo"
print("<tr><td colspan=' 2'><div align='center'>");
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
print("</tr></td></table>");
?>
<center><font size="1" color="000000"><strong>Total de páginas <b><? echo $tp?></b>. Você está na página <b><? echo $pc?></b>.</font> </strong> </center>
</body>
</html>
// By soltim
_________________________________________________________________________________________________
Qualquer duvida é só perguntar...
Edição feita por: soltim, 29/05/2007, 16:03.
#3
Posted 29/05/2007, 23:37
Olá Amigo....
Vc esta com sorte!
Estava incrementando esse msm código então vou postar pra vc... prontinho... funcionando!!!
Obs: Você vai mostrar as noticias incluindo a pagina(mostrar.php)
Você vai escolher quantos registros vão ser exibidos dentro do código da página (mostrar.php) no local indicado $total_reg="5" sendo que vc vai trocar o "5" pelo numero de registros desejado.
A conexão com o banco de dados vai ser feita tb diretamente no código da página (mostrar.php).
E por ultimo, na sentença que faz a busca no sql... onde esta "FROM $tabela" vc vai substituir pelo nome da tabela que vc criou no bd, se vc tiver deixado padrão será "noticias"...Assim ficando "FROM noticias...".
Vamos ao código:
mostrar.php
________________________________________________________________________________________
// By soltim
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
font-family: sans-serif,Verdana, Arial, Helvetica, ;
font-size: 12px;
color: #000000;
}
body {
background-color: #DEEBF5;
}
a {
font-size: 10px;
color: #000000;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #000000;
}
a:hover {
text-decoration: underline;
color: #BA55D3;
}
a:active {
text-decoration: none;
color: #000000;
}
-->
</style></head>
<body>
<?php
$conn = mysql_connect("localhost","dbuser","dbpassword");
$banco = mysql_select_db("db");
?>
<?php
$busca = "SELECT id, date_format(data, '%d/%m/%Y') as data_formatada, titulo, noticia, imagem FROM $tabela ORDER BY data_formatada DESC";
?>
<?php
$total_reg = "5"; // Aqui vc coloca o numero de registros por pagina
?>
<?php
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
?>
<?php
$inicio = $pc - 1;
$inicio = $inicio * $total_reg;
?>
<?php
$limite = mysql_query("$busca LIMIT $inicio,$total_reg");
$todos = mysql_query("$busca");
$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = ceil($tr / $total_reg); // verifica o número total de páginas
// vamos criar a visualização
while ($dados = mysql_fetch_array($limite)) {
$linha = ($dados);
print("<tr><td colspan=' 3'><div align='center'><strong>$linha[data_formatada] - $linha[titulo]</strong></div></td></tr>");
print("<tr><td width='5%' valign='top'><div align='left'><img src='img_noticias/$linha[imagem]' alt='sem imagem' width='70' height='60'></div></td><td width='95%' valign='top'><div align='left'><a href='mostrar_noticia.php?id=$linha[id]'>$noticia_formatada</a></div></td></tr>");
print("<tr><td colspan='2'><div align='left'><hr></div></td></tr>");
// agora vamos criar os botões "Anterior e próximo"
print("<tr><td colspan=' 2'><div align='center'>");
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
print("</tr></td></table>");
?>
<center><font size="1" color="000000"><strong>Total de páginas <b><? echo $tp?></b>. Você está na página <b><? echo $pc?></b>.</font> </strong> </center>
</body>
</html>
// By soltim
_________________________________________________________________________________________________
Qualquer duvida é só perguntar...
Muito bom o seu código mas me diz uma coisa, é para salvar este arquivo como mostrar.php correto ?
Tenho uma página onde preciso que apareça as notícias, como devo chamar pelo "mostrar.php" na página onde quero que apareça as notícias.
Usei <?php require(mostrar.php); ?> e deu erro: conforme abaixo...,
Fatal error: Failed opening required 'mostrarphp' (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\citynews\regiao.php on line 371.
Usei <?php include(mostrar.php); ?> e também deu erro: conforme abaixo...,
Warning: Failed opening 'mostrarphp' for inclusion (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\citynews\regiao.php on line 371.
como devo usar este arquivo, o seu funcionou normalmente.
desde já muito obrigado
#4
Posted 30/05/2007, 14:29
dai vc vai fazendo os testes acessando o script diretamente...(EX:http://localhost/xxx/mostrar.php)..quando coseguir fazer ele funcionar direitinho, dai vc tenta incluir ele em outras paginas..
Eu Uso assim: (EX:<? include "mostrar.php"?>"), lembrando que vc deve colocar o caminho completo para onde esta salvo o seu arquivo, o qual vc esta incluindo ("EX: vc quer incluir o arquivo que esta em uma pasta "noticias", em uma pagina que esta no diretorio raiz, sendo que a pasta "noticias" tb esta no raiz do seu site... vc terá que colocar assim:
<? include "noticias/mostrar.php"?>
Pelo que entendi a sua estrutura ta assim:
...htdocs/citynews/
(dentro desta pasta vc tem os codigos para as noticias[região.php, mostrar.php,etc], dai vc esta tentando incluir o mostrar.php na pagina região.php), porém se a pagina regiao.php for ser chamada no index do seu site seu include vai ter que ser assim [EX: <? include "citynews/mostrar.php" ?>], pois apesar dos dois arquivos estarem na msm pasta quando ele for incluido e como se ele fosse para a pasta raiz, por isso e preciso colocar o caminho completo...) A não ser que estaja utilizando "iframe", pois ai já é outra história.
Se não for isso me explica como vc esta tentando colocar os seus códigos para ver se posso lhe ajudar.
Tenta ai!
Qualquer coisa me fala.
Ah! se funcionar avisa tb tá? Valeu!!! Depois passa o link do seu site para eu ver como ficou...
Flw
Edição feita por: soltim, 30/05/2007, 14:44.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)