necesito buestra ayuda para paginar en php y msql

Hola amigos necesito ayuda estoy paginando resultados

me muestra 1 enlace por pagina casi bien pero le faltan unos detalles para estar completo el paginado

lo que quiero es paginar correctamente los resultados 10 por pagina
en la base tengo 14 url deveria de mostrarlas
asi
1 resultado
2
3
4
5
6
7
8
9
10

<<Anterior 1 Siguiente>>

<?php
// Datos de conexión a la base de datos
$base = mi base de datos;
$con = @mysql_connect(localhost,mi usuario,mi contraseña);
@mysql_select_db($base,$con);
if (!isset($index))
$index = 0; // $index es la pagina actual
$cantidad = 10; // cantidad de resultados por página
$inicial = $index * $cantidad;

$pegar = "SELECT * FROM tabla ORDER BY URL LIMIT $inicial,$cantidad";
$cad = @mysql_db_query($base,$pegar) or die (@mysql_error());

$contar = "SELECT * FROM tabla ORDER BY URL";
$contarok= @mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = @intval($total_records / $cantidad);

// Imprimiendo los resultados
while($array = @mysql_fetch_array($cad)) {
echo $array['URL']."<br>";
}

// Cerramos la conexión a la base
$con = @mysql_close($con);

// Creando los enlaces de paginación
echo "<p class=fonty>";
if ($index != 1) {
$url = $index - 10;
echo "<a href='$PHP_SELF?index=".$url."'>&laquo; Anterior</a>&nbsp;";
} else {
echo "0 ";
}
for ($i = 0; $i <= $pages; $i++) {
if ($i == $index) {
if ($i == "0") {
echo "<b> </b>";
} else {
$i = $i+1;
echo "<b> ".$i." </b>";
}
} else {
if ($i == "0") {
echo "<a href=$PHP_SELF?index=".$i.">1</a> ";
} else {
echo "<a href='$PHP_SELF?index=".$i."'>";
$i = $i+0;
echo $i."</a>&nbsp;";
}
}
}
if ($index < $pages) {
$url = $index * 1;
echo "<a href='$PHP_SELF?index=".$url."'>Siguiente &raquo;</a>";
} else {
echo " ";
}
echo "</p>";
?>