- Home
- Categorie
- Coding e Sistemistica
- PHP
- Dividere news
-
nn c'ho capito niente....:)
-
La tua firma dice => soluzioni per il tuo sito web ehehehe
Comunque vuoi un esempio? però con un esempio non impari molto
-
si meglio l'esempio....
soluzioni per il tuo sito web
sto imparando...-
-
Ciao Talkoman,
se hai gia' ilrecordset pronto e devi solo inserire date e titoli credo basti fare cosi'<?php echo $row_getArticles['title']; ?>: <?php echo $row_getArticles['theDate']; ?> <a href="news_detail.php?article_id=<?php echo $row_getArticles['article_id']; ?>" class="floatRight">Leggi tutto</a></p> <p> <?php } ?> </p> <?php } while ($row_getArticles = mysql_fetch_assoc($getArticles)); ?>
Dove: getArticles e' il nome del recordset, title e theDate sono titolo e data della news...
spero che ti funzioni, a me cosi' va perfettamente... facci sapere!;)
-
non manca un pezzo? così in teoria non va... chiudi due volte la graffa } e non la apri mai...
-
Hai ragione Skyline, avevo dimenticato un pezzo,
Il codice completo e' questo:<?php do { ?> <h2><?php echo $row_getArticles['title']; ?></h2> <p><?php echo $row_getArticles['theDate']; ?>: <?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)); ?>
e poi alla fine di tutto il codice:
<?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; } ?>
che e' la funzione che estrae i primi due paragrafi della news e li fa vedere nella pagine di "riassunto" in cui si sceglie quale news visualizzare...
Scusate!
-
cry::?
NON CAPISCO!!!!!!!!!HELP!!!!
-
allora, partiamo dal principio: che cosa hai fatto fino ad ora?
hai detto che hai la pagina delle news che estrae tutte le news dal database giusto?magari posta il codice cosi' capiamo da che punto partire...
oppure posta la struttura della tabella...
-
eccolo...
[PHP]<?php
$news=@mysql_query('SELECT * FROM news ORDER BY data DESC');
if (!$news){
exit('<p>Errore, impossibile recuperare le news dal database!<br/>'.
'Errore: ' . mysql_error() . '</p>');
}
while($notice=mysql_fetch_array($news)){
$id=$notice['id_news'];
$titolo= htmlspecialchars($notice['titolo']);
$data=$notice['data'];
//$mese=date('m',$data);
$array = explode("-", $data);
//in stile DD/MM/YYYY
$data_it = $array[2]."-".$array[1]."-".$array[0];
$mese= $array[1];
if($mese==1)
$mese="Gennaio";
elseif($mese==2)
$mese="Febbraio";
elseif($mese==3)
$mese="Marzo";
elseif($mese==4)
$mese="Aprile";
elseif($mese==5)
$mese="Maggio";
elseif($mese==6)
$mese="Giugno";
elseif($mese==7)
$mese="Luglio";
elseif($mese==8)
$mese="Agosto";
elseif($mese==9)
$mese="Settembre";
elseif($mese==10)
$mese="Ottobre";
elseif($mese==11)
$mese="Novembre";
elseif($mese==12)
$mese="Dicembre";
echo "<tr>
<td width=100 align="center">$data_it $mese</td><td align="left"><a href='legginews.php?id=$id'>$titolo</a></td>" .
"</tr><tr>
<td colspan=2><div style="CLEAR: left; BACKGROUND: url(images/struttura/dott.gif) repeat-x left center; HEIGHT: 25px;"></div></td>";
}
?>[/PHP]
-
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'immaginequindi 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