Newsgroup: it.comp.www.php
Titolo: visualizzazione su più pagine

Ciao a tutti. Mi sono fatto un file php che mi visualizza tutto il contenuto
di un db. Adesso il mio problema è il seguente: quando i dati cominciano a
diventare tanti, vorrei poter spezzare la visualizzazione su più pagine, e
quindi aggiungere dei tasti avanti e indietro. Come posso fara ?
<html>
<head>
<title>Caricamento dei dati dal database</title>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">FORUM</h1>
<p align="center">
Ordina la bacheca per
<a href="data_out.php3?orderby=data">Data</a>,
<a href="data_out.php3?orderby=intestazione">Intestazione</a> or by
<a href="data_out.php3?orderby=nome_autore">Autore</a>.
<p>
<form action="data_out.php3" method="POST">
<p align="center">
Oppure vedi solamente le mail per (<i>inserisci il nome dell'autore</i>):
<input type="text" name="autore">
<input type="submit" name="submit" value="OK">
</form>
<div align="center">
<center>
<table border="1" cellpadding="3" bordercolor="#000000">
<?php
/* This program gets news items from the database */
$db = mysql_connect("localhost", "root");
mysql_select_db("PROVA");
if ($orderby == 'data'):
$sql = "select * from news order by 'date'";
elseif ($orderby == 'nome_autore'):
$sql = "select * from news order by 'nome_autore'";
elseif ($orderby == 'intestazione'):
$sql = "select * from news order by 'intestazione'";
elseif (isset($submit)):
$sql = "select * from news where nome_autore = '$autore'";
else:
$sql = "select * from news";
endif;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
print("<tr><td bgcolor=\"#FF6600\"><b>");
printf("<font color=\"black\">%s</font></b></td></tr>\n",
$row["intestazione"]);
printf("<td>By: <a href=\"mailto:%s\">%s</a>\n", $row["email"],
$row["nome_autore"]);
printf("<br>Posted: %s<hr>\n", $row["data"]);
printf("<br>id: %s<hr>\n", $row["news_id"]);
printf("%s</td></tr>\n", $row["corpo"]);
}
?>
</table>
</center>
</div>
</body>
</html>

 quindi aggiungere dei tasti avanti e indietro. Come posso fara ?
Rozzamente puoi fare una cosa di questo tipo (tra l'altro ordinando un po' il 
codice):
************** data_out.php3 *******************
<html>
 <head>
  <title>Caricamento dei dati dal database</title>
 </head>
<body bgcolor="#ffffff" Text="#000000">
 <h1 align="center">FORUM</h1>
 <p align="center">
 Ordina la bacheca per
 <a href="data_out.php3?orderby=date">Data</a>,
 <a href="data_out.php3?orderby=intestazione">Intestazione</a> or by
 <a href="data_out.php3?orderby=nome_autore">Autore</a>.
 <p>
 <form action="data_out.php3" method="POST">
  <!-- Ci impostiamo una variabile per sapere se stiamo facendo una search -->
  <input type="hidden" name="search" value="1"> 
  <p align="center">
  Oppure vedi solamente le mail per (<i>inserisci il nome dell'autore</i>):
  <input type="text" name="autore">
  <input type="submit" name="submit" value="OK">
 </form>
 <div align="center">
 <center>
 <table border="1" cellpadding="3" bordercolor="#000000">
<?
$db = mysql_pconnect("localhost", "root");
mysql_select_db("PROVA");
// Nel peggiore dei casi la query sarà senza dubbio la seguente:
$query = "SELECT * FROM NEWS";
// Ma potremmo volerla ordinata:
if (isset($orderby))
 $query = "SELECT * FROM news ORDER BY ".$orderby;
// Oppure potremmo volere un solo autore:
if ($search == 1)
 $query = "SELECT * FROM news WHERE nome_autore = '".$autore."'"; 
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
 {
  // Chiudo il PHP visto che devo scrivere tanto HTML
  ?>
 <Tr>
  <Td BgColor="#FF6600">
   <Font Color="Black"><B>
    <? echo $row["intestazione"]; ?>
   </Font></B>
  </Td>
  <Td BgColor="#FF6600">
   <Font Color="Black"><B>
    By:     <? echo $row["nome_autore"; ?><BR>
    Posted: <? echo $row["data"];       ?><BR>
    id:     <? echo $row["news_id"];    ?><BR>
    <? echo $row["corpo"];              ?>
   </Font></B>
  </Td>
 <?
 // Riapro il PHP per chiudere il While
 }
?>
 </table>
 </center>
 </div>
 </body>
 </html>
************** data_out.php3 *******************
Passa a PHP4, comunque.

 codice):
Cazzo, mi sono dimenticato la visualizzazione su più pagine. Scusa.
************** data_out.php3 *******************
<?
 // Definisco quanti risultati voglio per pagina:
 $risperpag = 20;
?>
<html>
 <head>
  <title>Caricamento dei dati dal database</title>
 </head>
<body bgcolor="#ffffff" Text="#000000">
 <h1 align="center">FORUM</h1>
 <p align="center">
 Ordina la bacheca per
 <a href="data_out.php3?orderby=date">Data</a>,
 <a href="data_out.php3?orderby=intestazione">Intestazione</a> or by
 <a href="data_out.php3?orderby=nome_autore">Autore</a>.
 <p>
 <form action="data_out.php3" method="POST">
  <!-- Ci impostiamo una variabile per sapere se stiamo facendo una search -->
  <input type="hidden" name="search" value="1"> 
  <p align="center">
  Oppure vedi solamente le mail per (<i>inserisci il nome dell'autore</i>):
  <input type="text" name="autore">
  <input type="submit" name="submit" value="OK">
 </form>
 <div align="center">
 <center>
<?
$db = mysql_pconnect("localhost", "root");
mysql_select_db("PROVA");
// Nel peggiore dei casi la query sarà senza dubbio la seguente:
$query = "SELECT * FROM NEWS LIMIT ".$start.", ".($risperpag-1);
// Ma potremmo volerla ordinata:
if (isset($orderby))
 $query = "SELECT * FROM news ORDER BY ".$orderby. " LIMIT ".$start.", 
".($risperpag-1);
// Oppure potremmo volere un solo autore:
if ($search == 1)
 $query = "SELECT * FROM news WHERE nome_autore = '".$autore."' LIMIT 
".$start.", ".($risperpag-1);; 
$result = mysql_query($sql);
$ccc = 0
$risultati = mysql_num_rows($result);
echo '<br><div align="right">';
while ($ccc < $risultati)
 {
  // Generiamo l'url per ricaricare la pagina attuale con un pezzo
  // diverso di risultati
  echo '<a 
href="data_out.php3?orderby='.$orderby.'&search='.$search.'&start='.$ccc.'">';
  // Scriviamo una serie di boxini per scegliere quale risultato vedere
  echo ' [ '.$ccc.' -&gt; '.($ccc + ($risperpag - 1)).' ] ';
  // chiudiamo il link
  echo ' </A> ';
  // Incremento il contatorino
  $ccc = $ccc + $risperpag;
 }
echo '</div><br>';
// Ora posso scrivere l'intestazione della Table
echo '<table border="1" cellpadding="3" bordercolor="#000000">';


uhm però mi dà :Parse error: parse error alla linea 62, ovvero:
$risultati = mysql_num_rows($result);
any idea?
"skeyby" <skeyby...@NOSPAMporno-muzik.org> ha scritto nel messaggio
news:CFN375585...@news.virgilio.it...


 any idea?
Considera che l'ho scritto direttamente nel client news senza provarlo. Un 
attimo che guardo e ti dico.

 
Manca il punto e virgola alla riga di sopra.
$ccc = 0;
Certo però che se non riesci a trovare neanche un errore così banale.... :)))


Manca il punto e virgola alla riga di sopra.
$ccc = 0;
Certo perň che se non riesci a trovare neanche un errore cosě banale....
:)))

 
<snip>
dài un occhio qui:
http://www.netmeister.org/news/learn2quote.html
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.efluxa.it/netiquette/

 vedere da 1 a 2 come pagine.
Non capisco che intendi.
Quanti risultati ci sono?
Se sono meno di 39 è giusto.