Sto cercando di creare un guest book (con database) e mi sono arenato su un punto:
La numerazione dei messaggi quando questi vengono visualizzati su più pagine.
Ho creato il guest e funziona, aggiunto anche il codice per visualizzare i messaggi su più pagine.
a questo punto ho inserito anche la numerazione dei messaggi e quì sono cominciati i dolori, mi spiego meglio:
Uso la variabile "$numero_record = 5; " per settare i record per pagina, ma quando le pagine sono maggiore di una, la numerazione dei messaggi non funziona.
Ma solo la numerazione, i messaggi invece allo scorrere delle pagine funzionano.
Ricapitolando se le pagine dei messaggi sono piu' di una, sfogliando le pagine del guest, i messaggi si leggono in modo corretto mentre la loro numerazione rimane fissa
Posto il codice:
Codice PHP:
<?php
include ("config.php");
include("config.inc.php");
?>
<html>
<head>
<style>
.titolo {
font:"Courier New", Courier, monospace;
font-size: <? echo $dimensfont?>;
color: <? echo $colorT?>;
}
.MessSup {
font-family:Arial, Helvetica, sans-serif;
background-color: <? echo $sfondoCelSup?>;
color: <? echo $colFontMeSu?>;
font-size: <? echo $dimfontSu?>;
font-weight:bold;
}
.MessInf {
font-family:Arial, Helvetica, sans-serif;
background-color: <? echo $sfondoCelInf?>;
color: <? echo $colFontMeIn?>;
font-size: <? echo $diFontIn?>;
}
.tabMess {
font-family:Arial, Helvetica, sans-serif;
background-color: <? echo $sfondoTabMes?>;
}
.tabFirma {
font-family:Arial, Helvetica, sans-serif;
background-color: <? echo $tabFirma?>;
}
</style>
<title>MIO GUESTBOOK</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="layout.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="guest_titolo" class="titolo"><? echo $titolo_guest ?></div>
<div id="guest_sup" class="tabMess">
<?php
//mi connetto al database,user e password
$db = mysql_connect($db_host, $db_user, $db_password);
//in caso di errore
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
//mi connetto alla tabella
mysql_select_db($db_name, $db)
//in caso di errore
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$numero_record = 5; //numero record per pagina
if(!isset($HTTP_GET_VARS["inizio"])){
$inizio = 0;
}else{
$inizio = $HTTP_GET_VARS["inizio"];
}
//preparo la query per nome, citta, ecc.
$query = "SELECT id, nome, citta, messaggio, data FROM messaggi ORDER BY id DESC LIMIT $inizio,$numero_record";
$result = mysql_query($query, $db);
//query per contare record e numero pagine
$query2 = "select * from messaggi";
$result2 = mysql_query($query2, $db);
$numero_record_totali = mysql_numrows($result2);
$numero_pagine = ceil($numero_record_totali/$numero_record);
$pagina_corrente = ceil(($inizio/$numero_record) + 1);
$numero_record_totali2 = ($numero_record_totali+1); //altrimenti parte a scrivere da zero
while ($row = mysql_fetch_array($result))
{
//numerazione messaggi
$numero_record_totali2= ($numero_record_totali2-1);
$nome1= $row["nome"];
$citta1= $row["citta"];
// data
$data1= $row['data'];
$messaggio1= $row["messaggio"];
?>
<table border="1" width="100%" height="100px" cellpadding="0" cellspacing="0">
<tr>
<td width="30%">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="2" class="MessSup">
<tr>
<td><?=$numero_record_totali2?></td>
</tr>
<tr>
<td><?=$nome1?> da <?=$citta1?></td>
</tr>
</table>
</td>
<td>
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="2" class="MessInf">
<tr>
<td><?=date("j/n/y H:i", $data1)?></td>
</tr>
<tr>
<td><?=$messaggio1?></td>
</tr>
</table>
</td>
</tr>
</table>
<?php
}
echo "pagina"." ";
if($numero_pagine > 1){
for($pagina = 1; $pagina <= $numero_pagine; $pagina++){
if($pagina == $pagina_corrente){
?>
[b]<?=$pagina?>[/b]
<?php
}else{
?>
[url="guest.php?inizio=<?=(($pagina - 1) * $numero_record)?>"]<?=$pagina?>[/url]
<?php
}
}
}
?>
</div>
</body>
</html>
P.s Ho inserito questa variabile "$numero_record_totali2 = ($numero_record_totali+1); " altrimenti la numerazione dei messaggi iniziava da zero.
Provato anche a toglierla, ma l'anomalia rimane.
Il codice mi sembra corretto, boh .
chi mi da una mano?
grazie