allora vado un po' di fretta, quindi ti posto qui il codice, prova a fare un po' di prove.
Considera che questo codice e' fatto per una tabella che ha le seguenti colonne:
article_id - id della news
title - titolo news
article - testo della news
updated - data ultima modifica
created - data creazione
image - immagine allegata alla news (del tipo: nome_immagine.jpg)
caption - "alt" da associare all'immagine
quindi dovrai fare le dovute sostituzioni...
allora partiamo.
questo va prima della doctype declaration:
[PHP]
//connessione al database
<?php
$hostname_nomeQuery = "...";
$database_nomeQuery = "...";
$username_nomeQuery = "...";
$password_nomeQuery = "...";
$nomeQuery = mysql_pconnect($hostname_nomeQuery, $username_nomeQuery, $password_nomeQuery) or trigger_error(mysql_error(),E_USER_ERROR);
?>
<?php
$maxRows_getArticles = 10;
$pageNum_getArticles = 0;
if (isset($_GET['pageNum_getArticles'])) {
$pageNum_getArticles = $_GET['pageNum_getArticles'];
}
$startRow_getArticles = $pageNum_getArticles * $maxRows_getArticles;
mysql_select_db($database_nomeQuery, $nomeQuery);
$query_getArticles = "SELECT news.article_id, news.title, news.article, DATE_FORMAT(news.created, '%e.%c.%Y') AS theDate FROM news ORDER BY news.created DESC";
$query_limit_getArticles = sprintf("%s LIMIT %d, %d", $query_getArticles, $startRow_getArticles, $maxRows_getArticles);
$getArticles = mysql_query($query_limit_getArticles, $nomeQuery) or die(mysql_error());
$row_getArticles = mysql_fetch_assoc($getArticles);
if (isset($_GET['totalRows_getArticles'])) {
$totalRows_getArticles = $_GET['totalRows_getArticles'];
} else {
$all_getArticles = mysql_query($query_getArticles);
$totalRows_getArticles = mysql_num_rows($all_getArticles);
}
$totalPages_getArticles = ceil($totalRows_getArticles/$maxRows_getArticles)-1;
$queryString_getArticles = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_getArticles") == false &&
stristr($param, "totalRows_getArticles") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_getArticles = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_getArticles = sprintf("&totalRows_getArticles=%d%s", $totalRows_getArticles, $queryString_getArticles);
?>
[/PHP]
poi, nel punto della pagina dove vuoi vedere le news in elenco:
[PHP]
<?php do { ?>
<h2><?php echo $row_getArticles['title']; ?></h2>
<p><strong><?php echo $row_getArticles['theDate']; ?>:</strong> <?php $extract = getFirst($row_getArticles['article']); echo $extract[0]; if ($extract[1]) { ?> <a href="news_detail.php?article_id=<?php echo $row_getArticles['article_id']; ?>" class="floatRight">Leggi tutto</a></p>
<p> </p>
<p>
<?php } ?>
</p>
<?php } while ($row_getArticles = mysql_fetch_assoc($getArticles)); ?>
<table border="0" width="50%" align="center">
<tr>
<td width="23%" align="center"><?php if ($pageNum_getArticles > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_getArticles=%d%s", $currentPage, 0, $queryString_getArticles); ?>">Primo</a>
<?php } // Show if not first page ?>
</td>
<td width="31%" align="center"><?php if ($pageNum_getArticles > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_getArticles=%d%s", $currentPage, max(0, $pageNum_getArticles - 1), $queryString_getArticles); ?>">Precedente</a>
<?php } // Show if not first page ?>
</td>
<td width="23%" align="center"><?php if ($pageNum_getArticles < $totalPages_getArticles) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_getArticles=%d%s", $currentPage, min($totalPages_getArticles, $pageNum_getArticles + 1), $queryString_getArticles); ?>">Successivo</a>
<?php } // Show if not last page ?>
</td>
<td width="23%" align="center"><?php if ($pageNum_getArticles < $totalPages_getArticles) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_getArticles=%d%s", $currentPage, $totalPages_getArticles, $queryString_getArticles); ?>">Ultimo</a>
<?php } // Show if not last page ?>
</td>
</tr>
</table>
[/PHP]
infine, dopo il tag di chiusura dell'html:
[PHP]
<?php
mysql_free_result($getArticles);
function getFirst($text, $number=2) {
// regular expression to find typical sentence endings
$pattern = '/([.?!]["']?)\s/';
// use regex to insert break indicator
$text = preg_replace($pattern, '$1bRE@kH3re', $text);
// use break indicator to create array of sentences
$sentences = explode('bRE@kH3re', $text);
// check relative length of array and requested number
$howMany = count($sentences);
$number = $howMany >= $number ? $number : $howMany;
// rebuild extract and return as single string
$remainder = array_splice($sentences, $number);
$result = array();
$result[0] = implode(' ', $sentences);
$result[1] = empty($remainder) ? false : true;
return $result;
}
?>
[/PHP]
spero che ti funzioni,
fammi sapere