Buenas!
Pues he probado tu código, y a parte de algunos errores en principio sin importancia, a mí sí me ha funcionado. La sentencia es correcta,
LIMIT (A_PARTIR_DE_CUAL), (CUANTOS), y haciendo un echo de tu consulta, y pasándole
?pag=2 por ejemplo, me sale LIMIT 20, 20 (correcto), le pongo 3 y me sale LIMIT 40, 20 (correcto)...
Te recomiendo que efectúes algunos cambios y que verifiques unos temitas, y a ver si te puede servir de algo:
-Los nombres entre corchetes
[], ponlos entre comillas simples
'texto', sino se cree que son constantes definidas y no es así
Código PHP:
$url = $registro['tipo']; // Y no $url = $registro[tipo];
-En casi todas las SELECT haces:
Código PHP:
$verificar = mysql_query("SELECT * FROM $ciudades,");
Hay una coma al final :S Además, siguiendo con el código, la variable $ciudades está guardando el nombre de una ciudad (sin espacios). Presupongo que tienes tantas tablas como ciudades, ya que la interpretación del código tal y como lo tienes, podría ser:
Código PHP:
SELECT * FROM Barcelona,
SELECT * FROM San_Sebastian,
En mi caso lo cambié por
mysql_query("SELECT * FROM ciudades WHERE nombre='". $ciudades ."'"). (Imagino que en tu caso no es así porque sino no dirías que siempre te salen los mismos registros, no te debería salir ninguno si atacas a una tabla que no existe.)
-La línea comentada está mal no? A no ser que tengas la variable $ciu definida más atrás, en todo caso sería $ciud:
Código PHP:
(...)
$Resultado=mysql_query("SELECT * FROM $ciudades LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
//$sql_select = "SELECT * FROM ciudades WHERE nombre='". $ciu ."'";
$sql_select = "SELECT * FROM ciudades WHERE nombre='". $ciud ."'"; // Así sí
while($registro=mysql_fetch_array($Resultado)){
$url = $registro[url];
$autor = $registro[autor];
(...)
-Inicializa variables a "" o a 0 o a NULL. Añade controles para variables vacías (isset()):
Código PHP:
$ciud="";
if(isset($_GET['ciudades'])){
$ciud=$_GET['ciudades'];
}
if($ciud <= " ") {
(...)
Finalmente te recomiendo que debajo de todas las SELECTs hagas un echo para saber qué sentencia te está ejecutando, y compruebes en la BBDD que metiéndole esa consulta te la genera bien. También incluye echos dentro de las condiciones para saber por qué condicionales pasa y por cuáles no, y en que casos.
Y para acabar te sugiero que uses htmlspecialchars() y addslashes() / stripslashes() para controlar un poco la seguridad. Busca anti-injections y protégete un poco porque si subes eso a una web te pueden petar la BBDD mediante el GET.
Espero que sea de ayuda y sorry por el tochopost!
Saludos