- Home
- Categorie
- Coding e Sistemistica
- PHP
- Passare alla pagina successiva
-
Passare alla pagina successiva
Passare alla pagina successiva Salve vado subito al punto...
sto creando una pagina dei commenti utilizzando fopen.... file di testo
come si fa quando la pagina è troppo piena di messaggi passare alla pagina successiva e mettere il link sotto 1 - 2Un esempio molto chiaro è un Forum ma anche un guestbook oppure nel mio caso una pagina dei commenti...
Ho fatto delle ricerche su google e si parla di alcuni comandi che ti forniscono le informazioni inerente al numero di righe di un file di testo ma non ho idea di come strutturare il programma.
Per voi dovrebbe essere una cosa molto semplice.
Intanto vi fornisco lo script:
[PHP]<?
if(isset($_POST['messaggio'])){
$messaggio=htmlspecialchars($_POST['messaggio']);$var=fopen("pagina1.php","a+");
fwrite($var, "<tr><td><img src=' ' width=100 height=100></td><td valign=top><div style='width:200px; text-align:justify'> $messaggio </div></td></tr>");
fclose($var);
}?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<input type="text" name="messaggio" size="30">
<input type="submit" value="scrivi commento">
</form><br><font color=red><h1>Commenti</h1></font><br>
<font color=blue>
<? include "pagina1.php"; ?>
</font>
</table><br>
<a href="pagina1.php">vai alla pagina dei commenti</a>[/PHP]Grazie in anticipo.
au revoir
by max_400
-
Ti consiglio vivamente di usare un database. Il lavoro, per il server, risulterebbe più snello ed il controllo, da parte tua, più sicuro.
Se non avessi idea come fare ti darò un piccolo aiuto.
-
Ho provato già questo script mi legge i primi 5 record
ma non funziona il link sottostante[PHP]
<?
// Creo una variabile dove imposto il numero di record
// da mostrare in ogni pagina
$x_pag = 5;// Recupero il numero di pagina corrente.
// Generalmente si utilizza una querystring
$pag = htmlspecialchars($_GET['pag']);// Controllo se $pag è valorizzato...
// ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1;// Mi connetto al database
$conn = mysql_connect("localhost","","");
mysql_select_db("nome_database", $conn);// Uso mysql_num_rows per contare le righe presenti
// all'interno della tabella agenda
$all_rows = mysql_num_rows(mysql_query("SELECT id FROM nome_tabella"));// Tramite una semplice operazione matematica definisco
// il numero totale di pagine
$all_pages = ceil($all_rows / $x_pag);// Calcolo da quale record iniziare
$first = ($pag - 1) * $x_pag;// Recupero i record per la pagina corrente...
// utilizzando LIMIT per partire da $first e contare fino a $x_pag
$rs = mysql_query("SELECT * FROM nome_tabella LIMIT $first, $x_pag");
$nr = mysql_num_rows($rs);
if ($nr != 0){
for($x = 0; $x < $nr; $x++){
$row = mysql_fetch_assoc($rs);
echo "<table border=1 width=700><tr>";
echo "<td width=650>" . $row['id'] . "</td>";
echo "<td width=650>" . $row['user'] . "</td>";
echo "<td width=650>" . $row['pass'] . "</td>";
echo "<td width=650>" . $row['citta'] . "</td>";
echo "<td width=650>" . $row['data'] . "</td>";
echo "<td width=650>" . $row['ip'] . "</td>";
echo "</tr></table>";
}
}else{
echo "Nessun record trovato!";
}// Se le pagine totali sono più di 1...
// stampo i link per andare avanti e indietro tra le diverse pagine!
if ($all_pages > 1){
if ($pag > 1){
echo "<a href="" . $_SERVER['PHP_SELF'] . "?pag=" . $pag - 1 . "">";
echo "Pagina Indietro</a> ";
}
if ($all_pages > $pag){
echo "<a href="" . $_SERVER['PHP_SELF'] . "?pag=" . $pag + 1 . "">";
echo "Pagina Avanti</a>";
}
}// Chiudo la connessione ad DB
mysql_close($conn);
?>
[/PHP]mi compare a fine pagina...
1">Pagina Avanti
forse è un problema di virgolette ho provato a modificarle ma non và
-
Vorresti quindi correggere questo script ed usare il database come suggerito?
Se "si" stasera ti correggo lo script e vedrai che funzionerà bene.
A presto.
-
Sì.
Ok grazie.
Ci tengo a questo script, è molto breve e semplice da modificare
Bisogna togliere queste virgolette e qualche slash... impostarlo meglio.Grazie infinite.
-
OK.
A stasera 25/06 cercherò di postarti lo script.
Dopo di che fammi sapere se va.
-
Ho già risolto il problema... bastava aggiungere le parentesi tonde in
$pag + 1 in ----> ($pag + 1)
$pag - 1 in ----> ($pag - 1)Ora ho un altro problema non mi funziona l'ordinamento per id
ho aggiunto alla query (al SELECT)
ORDER BY id ASCNon mi funziona perchè?
Grazie in anticipo a chi risponderà
by max_400