Passare alla pagina successiva

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
sto creando una pagina con sotto i commenti,
però per evitare che questa pagina diventi troppo lunga
come devo fare?

pagina_commenti.jpg


Questo è l'esempio


ecco lo script
PHP:
<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>

le pagine con i commenti avranno lo stesso nome ma aumenta il numero progressivo

pagina1.php
pagina2.php
pagina3.php


potete provare a scrivere qualkosa naturalmente non ci sarà avatar perchè ogni persona avrà una sua pagina personalizzata magari si potrà fare
una specie di login + session a per il momento non mi interessa
per ora la mia curiosità è sapere come fare a passare alla pagina successiva
come ad esempio un forum... quando la pagina è troppo lunga si passa alla pagina successiva...

Questo servirà per diverse applicazioni...

grazie..
 
Ahhhhhhh!!! - Il gatto mi ha graffiato!!!

Interessante Eliox... farebbe al caso mio però
ho l'impressione che si utilizza php5 guardando la seconda pagina
vedo questi simboli..

PHP:
$this->host_name = "localhost";
    $this->user_name = "username";
    $this->password = "password";
    $this->data_name = "dbseodir";
    $this->link = @mysql_connect($this->host_name, $this->user_name, $this->password) or die (mysq_error()); 
    @mysql_select_db($this->data_name

in genere quando vedo uno script con questi simboli -> è provabile che
non funzioni e mi dia errore :mavieni:

Comunque oltre ai file txt se avete un esempio simile col database va bene lo stesso
magari coi file txt si può tenere conto del peso di byte di un file.txt per poi passare ad un secondo file (pagina2) :book:
 
toc toc... c'è nessuno?

Io ancora non ho risolto però ho fatto delle ricerche che riguanrdano il conteggio delle righe di un file di testo.... ma come faccio a dire al php passa alla pagina successiva ogni 10 righe e metti sotto il link pagina 1 - pagina 2... bò :book:


Onorevoli... mi affido a voi!! :mavieni:

au revoir
by max_400
 
@max_400, ma quando ti decidi a passare a PHP5? Non sai cosa ti perdi senza le classi:)

Comunque per una soluzione non basata sulle OOP potresti consultare questo tutorial.
 
c'è qualkosa che non va nel link

mi mostra i primi 5 record ma non funziona il link
sicuramente c'è da modificare queste righe

PHP:
// 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);
?>

troppe virgolette ho provato a toglierne qualkuna ma mi dà errore :book:
ecco il risultato
http://max400scuola.altervista.org/aaa/estrazione_a_pagine.php

ho solo aggiunto i bordi...

cosa ce che non va? :confused:
 
Controlla che il valore passato per GET sia effettivamente settato.
 
bò è tutto qui...

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>&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);
?>

i primi 5 me li stampa ma gli altri 2? ed in particolare il link?

gfgfg.jpg
 
problema risolto ma adesso ne ho un altro piccolino

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)

$all_rows = mysql_num_rows(mysql_query("SELECT id FROM indirizzo_ip ORDER BY id ASC"));

Non mi funziona perchè?
Grazie in anticipo

by max_400
 
ASC??? se non metti nulla per default è CRESCENTE...prova a toglierlo proprio...
 

Discussioni simili