Tutorial PHP/MYSQL - Visualizzare una query al database dividendola in pagine

  WebSpazio.it | Tutorial PHP
Webspazio.it - Tutorial PHP/MYSQL
Visualizzare una query al database dividendola in pagine


Obiettivo del tutorial: Definizione del codice PHP necessario per Visualizzare una query al database dividendola in pagine.

 

In questo tutorial vedremo il codice PHP che permette di fare una query al database per prelevare dati, di scegliere quante righe del database visualizzare per pagina, e come fare la navigazioen tra le pagine create.

Preliminari:
Partirò dal presupposto che abbiate un database nel quale avete creato una tabella come la seguente:

$query = 'CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
username VARCHAR(30) NOT NULL,
password VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL)';

Quindi creata la tabella nel database il codice per raggiungere quanto ci si era prefissati è:

Il codice:

<?php
// Connessione al database.
$dbhost='';
$dbusername='';
$dbuserpass='';
$dbname='';

// Connessione al database
mysql_connect ($dbhost, $dbusername, $dbuserpass);

if (!mysql_select_db($dbname)) die(mysql_error());

echo "<h2>Visualizza record</h2>";

$rowsPerPage = 2; // Righe per pagina
$pageNum = 1; // Pagina iniziale di default

// Settaggio pagina corrente
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}

// determinazione offset
$offset = ($pageNum - 1) * $rowsPerPage;

$query = " SELECT id,username,email FROM users " .
" ORDER BY id LIMIT $offset, $rowsPerPage"; 
$result = mysql_query($query) or die('Error, query failed');

echo "<table border=1>
<tr><td>ID</td><td>Name</td>
                     <td>Email</td></tr>";
// Visualizzo le informazioni
while($row = mysql_fetch_array($result))
{
echo "<tr><td>".$row['id']."</td><td>
      ".$row['username']."</td>
	      <td>".$row['email']."</td></tr>";
}
echo "</table>";

$query = "SELECT COUNT(id) AS numrows FROM users";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

// numero di pagine
$maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER['PHP_SELF'];
$nav = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page ";
}
else
{
$nav .= " <a href=\"$self?page=$page\">$page</a> ";
}
}
//creazione dei link next e prev  
// e il link per andare direttamente in ultima pagina

if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[Prev]</a> ";

$first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
$prev = ' ';
$first = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[Next]</a> ";

$last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
$next = ' ';
$last = ' ';
}

//Stampa i link di navigazione
echo $first . $prev . $nav . $next . $last;
?>

Spiegazione algoritmo di funzionamento
Leggendo i commenti nel codice il funzionamento dovrebbe essere abbastanza chiaro.
Lasciando le impostazioni di default, vengono visualizzate due righe per pagina e la barretta di navigazione.






  

seguimi su twitter



Partner: sms gratisInviaresmsgratis.it si propone come punto di riferimento per gli utenti che cercano siti internet per inviare sms gratis.

      SMS Gratis

trading onlineGuidatradingonline.com propone una guida al trading online, azioni, mercati azionistici, finanza online, indizi di borsa, grafici indici azioni .

      Trading online

zoologiazoologia-animali.com propone una guida alla zoologia e animali, specie animali suddivise per categorie, guida scentifica animali ed esseri viventi del regno animale

       Zoologia

directory gratisYoweb.it è una directory ricca di categorie con siti selezionati da editori per trovare velocemente e gratis.

       Directory Gratis

Home | Computer & Internet | Sviluppare Sito Web | Promuovere Sito Web | Mappa del Sito | Altri Siti | Contatti

Copyright © webspazio.it
Designed by webspazio.it