Un esempio funzionanate da cui leggere il codice

Per il resto leggi il commento al tuo codice
Codice PHP:
        <?php
//Ad ogni esecuzione dello script $start non può esistere, quindi
//lo inizializzi con 0
        
if (!isset($start) OR $start 0)
            
$start 0;
        
$step 14;
        include 
"config.php";
//Indipendentemente dalla pagina parti dal record 0 e ne prendi 14
        
$query "SELECT * FROM libreriaimmagini  ORDER BY id_libreria DESC LIMIT $start,$step";
        
$result = @mysql_query($query) or die(mysql_error());
        if (
mysql_num_rows($result) > 0) {
            while (
$row mysql_fetch_array($result)) {
                
$id_libreria stripslashes($row['id_libreria']);
                
$foto_nome stripslashes($row['foto_nome']);
//Indipendentemente dalla pagina visualizzi le prime 14 immagini
                
echo <<<END
           <a href="#" onclick="scegli($id_libreria,'libreriaimmagini/$foto_nome');" width="100" height="100"> 
               [img]libreriaimmagini/
$foto_nome[/img]
           </a> 
END;
            }
        }
//Ora step diventa per_pagina... poco male
        
$per_pagina 14;
        
$totale_dati mysql_fetch_row(mysql_query("SELECT COUNT(id_libreria) FROM libreriaimmagini"));
        
$totale $totale_dati[0];
        
$totale_pagine ceil($totale $per_pagina);
        
$pagina_attuale = isset($_GET["pag"]) ? (int) $_GET["pag"] : 1;
//Aggiorni start
        
$start = ($pagina_attuale 1) * $per_pagina;
//Qui c'è una query che non si sa a cosa serva... comunque qui dici che ti funziona quindi...
        
mysql_query("SELECT * FROM libreriaimmagini ORDER BY id_libreria DESC LIMIT {$start}{$per_pagina}");
        if (
$pagina_attuale AND $pagina_attuale <= $totale_pagine) {
            echo (
$pagina_attuale == 1) ? "Indietro\n" '<a href="?pag=1"> 
Prima Pagina</a>' 
"\n" '[url="?pag=' . ($pagina_attuale 1) . '"]Indietro[/url]' "\n";

            
$max = (($pagina_attuale 2) > $totale_pagine) ? $totale_pagine : ($pagina_attuale 2);
            
$min = (($pagina_attuale 2) < 1) ? : ($pagina_attuale 2);
            for (
$i $min$i <= $max$i++) {
                echo 
" | ";
                echo (
$i == $pagina_attuale) ? "$i\n" '[url="?pag=' $i '"]' $i '[/url]' "\n";
            }

            echo (
$pagina_attuale == $totale_pagine) ? " Successivo\n" ' <a href="?pag=' . ($pagina_attuale 1) . '"> 
Successivo</a>' 
"\n" ' [url="?pag=' $totale_pagine '"]Ultima Pagina[/url]' "\n";
        }
?>