Ciao ragazzi, scusate per l'up ma, in questi giorni ho lavorato meglio sullo script e l'ho cambiato quasi radicalmente, ma, ahimè, il cambio apgina non funziona ugualmente.
Allora, cercherò di essere chiaro per farvi comprendere lo script passo dopo passo.
Per primo imposto la variabile per il numero massimo di news visualizabili per pagina.
Ad esempio :
Codice PHP:
$news_per_page = 10;
Poi ralizzo una cosa del genere per indicare il numero amssimo di news visualizzabili in una pagina.
Codice PHP:
$from_news = ($_GET["page"]-1) * $news_per_page;
$to_news = $_GET["page"] * $news_per_page - 1;
In seguito indico che le news verranno prese dal database
Codice PHP:
$tot_news = count($op_db);
E poi eseguo la divisione del totale delle news con quelle visualizzabili in una pagina in questo modo.
Codice PHP:
$num_pages = ceil($tot_news / $news_per_page);
In seguito imposto tramite Array i numeri delle pagine visualizzabili in fondo.
Codice PHP:
for ($i=$from_news;$i<=$to_news;$i++) {
echo $op_db[$i];
}
for ($i=1;$i<=$num_pages;$i++) {
if ($i!=$_GET["page"]) echo "<a $href_page href=\"News.php?page=$i\">";
echo $i;
if ($i!=$_GET["page"]) echo "</a>";
if ($i<$num_pages) echo " | ";
}
Con $op_db[$i] voglio indicare che le news sono contenute in un database di testo, difatti all'inizio della pagina h indicato $op_db=file("db_news.txt");
Poi il resto dello script, per chi non l'avesse compreso, è strutturato in questo modo:
Imposto le variabili per la formattazione dell'HTML:
Codice PHP:
$width_data = "70px";
$style_data = "style=\"font-size:13px;font-family:verdana;\" ";
$style_tabella = "style=\"padding-top:2px;\" ";
$width_news = "530px";
$width_tabella = "600px";
$position_tabella = "align=\"center\" ";
$position_div = "align=\"right\" ";
$classe = "class=\"write\" ";
$href_news= "class=\"news\" ";
$href_page = "class=\"white\" ";
$cellspacing = "cellspacing=\"0\" ";
$cellpadding = "cellpadding=\"0\" ";
$border = "border=\"0\" ";
Dopo di che richiamo le variabili che verranno stampate a video prese dal database e, tramite Array, indico anche che le ultime News pubblicate dovranno essere visualizzate in cima:
Codice PHP:
$op_db=array_reverse($op_db);
$cnt=count($op_db);
foreach($op_db as $val){
list($id,$nome,$data,$testo,$titolo,$mail,$foto)=explode("|",$val);
Dopo questa semplice procedura tramite echo faccio stampare a video la vera e propria notizia tramite echo:
Codice PHP:
echo "<tr><td width=\"$width_data\" $style_data>$data </td> <td width=\"$width_news\" $classe><a $href_news href=\"vedi_news.php?id=$id\">$titolo</a></td></tr><tr><td colspan=\"2\" $classe> » ";
Dopo ogni titolo ho voluto inserire la news vera e propria. Siccome essa è contenuta in un file di testo, dovrei richiamarlo tramite include, ma siccome con l'include non posso impostargli un limite massimo di carattere ho convertito il file di testo in variabile, in questo modo: $testo=file("./news/news_$id.txt");
Dopo per richiamare la variabile $testo con il substr ho utilizzato l'Array x impostare il limite x una stringa, in questo modo:
Codice PHP:
for($i=0;$i<count($testo);$i++){$testo[$i] =substr($testo[$i], 0, 95); echo "$testo[$i]";}";
Come potrete vedere ho impostato un limite di 95 caratteri.
Il resto dello script è abbastanza semplice, sono solo tabelle e celle per l'impostazione della pagina che prendono informazioni dalle variabili sovracitate per l'HTML.
Spero che sia stato chiaro, ora dovreste comprendere com'è strutturata la pagina.
Solo che ottengo questi brutti risultati per il cambio pagina:
http://silverseraph.altervista.org/News.php
come posso fare?
Grazie mile a chiunque provi ad aiutarmi.
Saluti e buona giornata a tutti