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 - 2

Un esempio molto chiaro è un Forum ma anche un guestbook oppure nel mio caso una pagina dei commenti...

http://max400scuola.altervista.org/aaa/commenti_pagina_successiva/commenti.php 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.

ecco lo script:

<div align=center> 
<img src="http://www.adriano.casissa.it/wp-content/uploads/2008/09/thais-velina-tette-capezzolo.jpg" 
width=320 height=242 alt="thais capezzolo - max4001976"><br>
<u>Mi sembra di vedere qualkosa di thais e voi? - by max400</u><br><br>

<?
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>

</div>

grazie in anticipo

inviato 5 anni fa
max_400
X 0 X

Se ho capito bene, stai usando un file di testo invece di un database perché sei su altervista.

In questo caso, puoi usare sqlite, che su altervista è già abilitato nel piano gratuito.

Almeno hai un database vero, su cui potrai usare PDO e fare anche la paginazione (che è quella che ti serve), magari usando qualcosa di già pronto.

risposto 5 anni fa
Massimiliano Arione
X 0 X

Ciao garak il database ce l'ho su altervista e diverse tabelle

poso farlo con quello ma c'è uno script che non mi funziona bene non visualizza il link in basso

http://www.mrwebmaster.it/php/articoli/paginazione-dati-estratti-db-mysql_455.html

e questo lo script che ho fatto io preso dall'esempio:

<?
// 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>&nbsp;";
  } 
  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);
?>

e questo è il risultato

Sarà un problema di virgolette? sarà un problema relativo al get? ...bòòòò

risposto 5 anni fa
max_400
X 0 X

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 ASC

Non mi funziona perchè?

Grazie in anticipo a chi risponderà

by max_400

risposto 5 anni fa
max_400
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda