aiuto con paginazione

ilbarmna

Nuovo Utente
15 Nov 2010
4
0
0
Salve a tutti sono un novellino con il php, ho appena iniziato a lavorarci per la mia tesi, la cosa che dovrei fare è creare una funzione per la paginazione dei dati, ovvero suddividere i risultati per pagina come quello di ggogle ad esempio... qualcuno può aiutarmi? posto qui il codice della pagina di risultati

<?php
session_start();
$id=$_SESSION["id"];
$livello=$_SESSION["livello"];

if ($id==0) die("Sessione terminata");

print "<head>";
include('../style.php');
print "</head>";
print "<body>";

include("../config.php");
global $db_host, $db_user, $db_password, $db_name;
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) die ("Errore nella connessione.<br>");
mysql_select_db($db_name, $db) or die ("Errore nella selezione del database.<br>");


$materia=$_POST["listMateria"];
$traduttore=$_POST["listTraduttore"];
$autore=$_POST["listAutore"];
$editore=$_POST["listEditore"];
$luogo=$_POST["listLuogo"];
$titoloOr=$_POST["titoloOr"];
$titoloTr=$_POST["titoloTr"];
$annoEd1=$_POST["annoEd1"];
$annoEd2=$_POST["annoEd2"];


$i=0;

if($argomento!=null)
{
$criterio[$i]="materia=$materia";
$i++;
}
if($traduttore!=null)
{
$criterio[$i]="traduttore=$traduttore";
$i++;
}

if($autore!=null)
{
$criterio[$i]="autore=$autore";
$i++;
}

if($editore!=null)
{
$criterio[$i]="editore=$editore";
$i++;
}

if($luogo!=null)
{
$criterio[$i]="luogo=$luogo";
$i++;
}


if($titoloOr!=null)
{
$criterio[$i]="titoloOriginale like '%$titoloOr%'";
$i++;
}

if($titoloTr!=null)
{
$criterio[$i]="titoloTradotto like '%$titoloTr%'";
$i++;
}

if($annoEd1!=null and $annoEd2!=null)
{
$criterio[$i]="annoEdizioneTradotta >= '$annoEd1' AND annoEdizioneTradotta <= '$annoEd2' ";
$i++;
}

if($annoEd1!=null and $annoEd2==null)
{
$criterio[$i]="annoEdizioneTradotta >= '$annoEd1'";
$i++;
}

if($annoEd1==null and $annoEd2!=null)
{
$criterio[$i]="annoEdizioneTradotta <= '$annoEd2'";
$i++;
}


$max_num = count($criterio);
for ($i=0; $i<$max_num; $i++)
{
$condizione=$condizione . $criterio[$i] . " AND ";
}
$n=strlen($condizione);
$condizione=substr($condizione, 0 ,$n-5);
//print $condizione;



print "<center>";
print "<h1>Risultati</h1>";


print "<table width='50%' border=1>";
print "<tr>";
print "<th>N</th>";
print "<th>Titolo originale</th>";
print "<th>Autore</th>";
print "<th>Titolo tradotto</th>";
print "<th>Anno edizione</th>";
print "<th>Editore</th>";
print "</tr>";

if($condizione!=null)
{
$condizione = " where " . $condizione;
}

$query="select * from vista" . $condizione;
print $query;

$result=mysql_query($query, $db);
$i=0;
while ($row = mysql_fetch_array($result))
{
$i=$i+1;

$idEdizione=$row["idEdizione"];
$titoloO=$row["titoloOriginale"];
$titoloT=$row["titoloTradotto"];
$autore=$row["autoreNome"] . " " . $row["autoreCognome"];
$editore=$row["editoreNome"];
$annoEdizione=$row["annoEdizioneTradotta"];

print "<tr>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione'>$i</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione'>$titoloO</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione'>$autore</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione'>$titoloT</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione'>$annoEdizione</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione'>$editore</a></td>";
print "</tr>";
}

print "</table>";

print "<p><a href='stampa.php?condizione=$condizione' target='_blank'>Anteprima di stampa</a>";

mysql_close($db);

print "</center>";

print "</body>";
?>
 

ilbarmna

Nuovo Utente
15 Nov 2010
4
0
0
ok perfetto sono riuscito ad attarlo, ma il link alla pagina seguente non è cliccabile però...
 
Ultima modifica:

ilbarmna

Nuovo Utente
15 Nov 2010
4
0
0
ok perfetto sono riuscito ad attarlo, ma il link alla pagina seguente non è cliccabile però... credo che nel mio caso non dovrei utilizzare $_SERVER['PHP_SELF']
 
Ultima modifica:

ilbarmna

Nuovo Utente
15 Nov 2010
4
0
0
si ho adattato la funzione che mi avete indicato, il risultato è corretto nella prima pagina, mi dovrebbe mostrare i restanti nella seconda ma il link di pagina successiva non è cliccabile...

Codice:
print "<body>";

include("../config1.php");

// Creo una variabile dove imposto il numero di record 
// da mostrare in ogni pagina
$x_pag = 3;

// Recupero il numero di pagina corrente.
// Generalmente si utilizza una querystring
$pag = $_GET['pag'];

// Controllo se $pag è valorizzato...
// ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1;

global $db_host, $db_user, $db_password, $db_name;
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) die ("Errore nella connessione.<br>");
mysql_select_db($db_name, $db) or die ("Errore nella selezione del database.<br>");


$materia=(int) $_POST["listMateria"];
$traduttore=(int) $_POST["listTraduttore"];
$autore=(int) $_POST["listAutore"];
$editore=(int) $_POST["listEditore"];
$luogo=(int) $_POST["listLuogo"];
$titoloOr=$_POST["titoloOr"];
$titoloTr=$_POST["titoloTr"];
$annoEd1=(int) $_POST["annoEd1"];
$annoEd2=(int) $_POST["annoEd2"];

$condizione_old= $_GET["condizione_old"];


$i=0;

if($materia!=null)
{
  $criterio[$i]="materia=$materia";
  $i++;
}
if($traduttore!=null)
{
  $criterio[$i]="traduttore=$traduttore";
  $i++;
}

if($autore!=null)
{
  $criterio[$i]="autore=$autore";
  $i++;
}

if($editore!=null)
{
  $criterio[$i]="editore=$editore";
  $i++;
}

if($luogo!=null)
{
  $criterio[$i]="luogo=$luogo";
  $i++;
}


if($titoloOr!=null)
{
  $criterio[$i]="titoloOriginale like '%$titoloOr%'";
  $i++;
}

if($titoloTr!=null)
{
  $criterio[$i]="titoloTradotto like '%$titoloTr%'";
  $i++;
}

if($annoEd1!=null and $annoEd2!=null)
{
  $criterio[$i]="annoEdizioneTradotta >= '$annoEd1' AND annoEdizioneTradotta <= '$annoEd2' ";
  $i++;
}

if($annoEd1!=null and $annoEd2==null)
{
  $criterio[$i]="annoEdizioneTradotta >= '$annoEd1'";
  $i++;
}

if($annoEd1==null and $annoEd2!=null)
{
  $criterio[$i]="annoEdizioneTradotta <= '$annoEd2'";
  $i++;
}


$max_num = count($criterio);
for ($i=0; $i<$max_num; $i++)
{
  $condizione=$condizione . $criterio[$i] . " AND ";
}
$n=strlen($condizione);
$condizione=substr($condizione, 0 ,$n-5);
//print $condizione;



print "<center>";
print "<h1>Risultati</h1>";


print "<table width='50%' border=1>";
print "<tr>";
print "<th>N</th>";
print "<th>Titolo originale</th>";
print "<th>Autore</th>";
print "<th>Titolo tradotto</th>";
print "<th>Anno edizione</th>";
print "<th>Editore</th>";
print "</tr>";

if($condizione!=null)
{
  $condizione = " where " . $condizione;
}

//print "$condizione_old<br>";
if(!empty($condizione_old))
$condizione=$condizione_old;

// Uso mysql_num_rows per contare le righe presenti
// all'interno della tabella agenda
$all_rows = mysql_num_rows(mysql_query("SELECT * FROM vista" . $condizione));

// 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;


$query="select * from vista LIMIT $first, $x_pag" . $condizione;
//print $query;

$result=mysql_query($query, $db);
$i=0;
while ($row = mysql_fetch_array($result))
{
$i=$i+1;

$idEdizione=$row["idEdizione"];
$titoloO=$row["titoloOriginale"];
$titoloT=$row["titoloTradotto"];
$autore=$row["autoreNome"] . " " . $row["autoreCognome"];
$editore=$row["editoreNome"];
$annoEdizione=$row["annoEdizioneTradotta"];

print "<tr>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione&condizione=$condizione'>$i</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione&condizione=$condizione'>$titoloO</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione&condizione=$condizione'>$autore</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione&condizione=$condizione'>$titoloT</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione&condizione=$condizione'>$annoEdizione</a></td>";
print "<td><a href='dettaglio.php?idEdizione=$idEdizione&condizione=$condizione'>$editore</a></td>";
print "</tr>";
}

print "</table>";


print "<p><a href='stampa.php?condizione=$condizione' target='_blank'>Anteprima di stampa</a>";


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>";
  } 
}

mysql_close($db);

print "</center>";

print "</body>";
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Aiuto con DataGridView Visual Basic 1
K Aiuto con file audio in html HTML e CSS 1
R Aiuto con le query MS Access 2
G Aiuto con htaccess e rewriterule PHP 0
M Aiuto con inserimento immagini WordPress 6
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
motleyrulez Aiuto con un ciclo PHP 0
maicol07 Python - Tkinter - Aiuto con pulsanti e tuple Programmazione 0
L [Javascript] aiuto non riesco a inviare in get dal server web locale su altervista con httpRequest Javascript 0
N Mi serve aiuto con "Snake". C/C++ 1
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
M Aiuto: problema con il mio TP-Link range extender Reti LAN e Wireless 0
L [HTML] Aiuto con immagini random HTML e CSS 1
S PHP: Aiuto con upload immagini che si auto tuotano PHP 24
A scambio lavoro per aiuto con android Sviluppo app per Android 0
I Form/aree di testo con input da lista di nomi!Chiedo aiuto!! HTML e CSS 3
M Aiuto con script di ricerca video youtube data api v3 Javascript 1
I attributo con IF aiuto PHP 3
ecosito Aiuto con la traduzione in italiano per capire come installare questo JavaScript jQuery 0
F Aiuto: impossibile la mappatura di un'immagine con Dreamweaver CC2015 HTML e CSS 8
D aiuto con query PHP 1
J Aiuto per localstorage con jquery/js/json Javascript 4
Marco_88 Aiuto con istruzione INSERT Database 8
M Aiuto su come procedere con un ciclo foreach PHP 4
R Redirect 301 con htaccess non funziona. Aiuto! PHP 1
I database con visual studio 2012 aiuto Database 0
L Aiuto con l'html di una pagina web HTML e CSS 0
V Aiuto con swipe e DB Sviluppo app per Android 2
N Aiuto con html nascondere i media HTML e CSS 4
T Aiuto con script PHP PHP 0
N ciao a tutti ho bisogno di aiuto con l'estensione mysqli?? MySQL 0
I Aiuto uso Nivo Slider con javascript jQuery 2
L problema con la funzione header!!! AIUTO! PHP 24
S Aiuto con PHP! PHP 4
D Aiuto Ajax da PHP con codifica json Ajax 0
K AIUTO con Apache WEBDAV E MOD_DAV Joomla 0
S aiuto con le query PHP 0
D aiuto con pag di login in php PHP 1
S [RISOLTO]aiuto, non riesco afar funzionare il camp odi ricerca per un DB con PHP PHP 5
S aiuto con query MySQL 10
P Aiuto con onclick Javascript 2
W Aiuto per menù fatto con immagini e relativo sottomenù HTML e CSS 2
D Chiedo aiuto con questo codice PHP 0
L Sito con mamp AIUTO PHP 12
M Aiuto con questo script PHP 21
D Aiuto con Ajax e pagine incluse nei DIV Ajax 1
L verifica mail in db con jquery e ajax. Aiuto jQuery 9
P Aiuto con Prestashop CMS (Content Management System) 3
Z Aiuto con l'input PHP 0
P Aiuto con query "SELECT" PHP 6

Discussioni simili