Jump to content


F.R - Desenvolvimentos

Member Since 17/05/2007
Offline Last Active 11/10/2008, 05:07
-----

Topics I've Started

Script De Paginação Funcionado, Mas Não Cria Os Links

29/05/2007, 08:32

Bom Dia galera !

Venho mais uma vez pedir a ajuda de vocês...

Estou usando um script de paginação de noticias, está paginando normalmente, tudo parece estar beleza nos script, mas tem um problema ele não cria os links para acessar as notícias aparece a lista das notícias. mas não dá para clicar em alguma e ir para a notícia.

Como resolver este problema que parece estar fácil de ser resolvido, mas não tenho mais idéias para colocar no script e fazer ele criar os links.
Se alguém puder me ajudar segue o código da páginação e uma imagem de como esta funcionando o script abaixo:

<? 
// bloco 1 - conecte-se ao banco de dados
$con = mysql_pconnect('localhost','citynews','jornal'); // host, usuário, senha
mysql_select_db('citynews'); // banco de dados


// bloco 2 - defina o número de registros exibidos por página
$num_por_pagina = 6;

// bloco 3 - descubra o número da página que será exibida
// se o numero da página não for informado, definir como 1
if (!$pagina) {
   $pagina = 1;
}


// bloco 4 - construa uma cláusula SQL "SELECT" que nos retorne somente os registros desejados
// definir o número do primeiro registro da página. Faça a continha na calculadora que você entenderá minha fórmula.
$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;

// consulta apenas os registros da página em questão utilizando como auxílio a definição LIMIT. Ordene os registros pela quantidade de pontos, começando do maior para o menor DESC.
$consulta = "SELECT data, titulo FROM noticias ORDER BY data DESC LIMIT $primeiro_registro, $num_por_pagina";
// executar query
$res = mysql_query($consulta,$con);


// bloco 5 - exiba os registros na tela
echo "<ul>"; while (list($data, $titulo) = mysql_fetch_array($res)) {
echo "<li> $data - $titulo";
}
echo "</ul>";


// bloco 6 - construa e exiba um painel de navegabilidade entre as páginas
$consulta = "SELECT COUNT(*) FROM noticias";
list($total_noticias) = mysql_fetch_array(mysql_query($consulta,$con));

$total_paginas = $total_noticias/$num_por_pagina;

$prev = $pagina - 1;
$next = $pagina + 1;
// se página maior que 1 (um), então temos link para a página anterior
if ($pagina > 1) {
$prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>";
} else { // senão não há link para a página anterior
$prev_link = "Anterior";
}

// se número total de páginas for maior que a página corrente, então temos link para a próxima página
if ($total_paginas > $pagina) {
$next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima";
} else { // senão não há link para a próxima página
$next_link = "Próxima";
}

// vamos arredondar para o alto o número de páginas que serão necessárias para exibir todos os registros. Por exemplo, se temos 20 registros e mostramos 6 por página, nossa variável $total_paginas será igual a 20/6, que resultará em 3.33. Para exibir os 2 registros restantes dos 18 mostrados nas primeiras 3 páginas (0.33), será necessária a quarta página. Logo, sempre devemos arredondar uma fração de número real para um inteiro de cima e isto é feito com a função ceil().
$total_paginas = ceil($total_paginas);
$painel = "";
for ($x=1; $x<=$total_paginas; $x++) {
  if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página
	$painel .= " [$x] ";
  } else {
	$painel .= " <a href=\"$PHP_SELF?pagina=$x\">[$x]</a>";
  }
}


// exibir painel na tela
echo "$prev_link | $painel | $next_link";
?>


Attached File  not2.GIF   20.81KB   13 downloads

Paginação - "wam Sistema De Notícias" Ajuda

26/05/2007, 01:06

olá galera.....

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);

IPB Skin By Virteq