Sin ofender amiga, pero tu código esta un poco "patas arriba" >.<, vemos como solucionamos esto...
Comenzamos con que DEBES DEPURAR TUS CONSULTAS SQL
SIEMPRE, porque de esto?, pues muy facil, muchas veces cometemos errores tipográficos en las sentencias SQL, pero estos errores no se muestran en pantalla automaticamente, y lo unico que sucede es que la query no retorna ningún resultado, para esto agrega SIEMPRE en mysql_query, mysql_connect, mysql_select_db, etc la función mysql_error de la siguiente manera:
Código PHP:
Ver original<?php
$sql = 'SELECT * FROM mitabla';
Ahora, en el código que has publicado en la linea 4 ejecutas una query PERO, en la linea 6 sobre escribes el resultado de la query anterior, si no vas a usar la query anterior no la agregues >.<
En la linea 15 no le veo sentido a tu for amiga, solo veo que defines valores a varias variables PERO se sobre escriben en la siguiente iteración del loop, por lo tanto es ilógico =/
En la linea 35 de nuevo generas una query PERO es igual al query de la linea 6 unicamente cambia el orden de los resultados...
Por ultimo en la linea 46 haces un nuevo loop while, por lo cual si la sentencia arroja mas de 1 resultado el form se repetirá según el numero de items arrojados...
En fin, son varios errores que tiene tu código, pero se puede rescatar la idea original, no podré generarte un código para hacer copy/paste, al menos no al 100%, pero será "facil" adaptar a tus necesidades, OJO, que el código generado es lo que al final YO ENTENDI, el resultado puede ser diferente a lo que pretendes >.<
Código PHP:
Ver original<?php
<?php
if (isset($_GET['nombre_etiqueta'])) { $nombre_etiqueta = $_GET['nombre_etiqueta'];
$sql = 'SELECT * FROM detalle_etiquetas WHERE nombre_etiqueta="'.$nombre_etiqueta.'"';
$campos[] = $row['id_plan'];
}
/*
* No eh usado la clase PHPPaging, pero paginaremos a mano, aquí
* puedes usar el metodo que prefieras...
*/
$sql = 'SELECT COUNT(*) FROM planes WHERE id_plan IN('.implode(',',$campos).') ORDER BY id_plan ASC';
//Definimos en que pagina estamos, si existe $_GET['pag'] obtenemos su valor, de lo contrario será 1
$pagActual = isset($_GET['pag']) ?
$_GET['pag'] : 1; //obtenemos el total de items...
//defines el numero de items que se mostrarán por página
$itemsPorPagina = 25;
//calculamos las páginas
$totalPags = ceil($totalItems / $itemsPorPagina); //calculamos desde que item nos devolvera mysql
$itemInicio = $itemsPorPagina * ($pagActual - 1);
//por fin hacemos la sentencia para recuperar los items...
$sql = 'SELECT * FROM planes WHERE id_plan IN('.implode(',',$campos).' ORDER BY id_plan ASC LIMIT '.$itemInicio.','.$itemsPorPagina;
$rut = "xxx/xxx/logos/";
$id_plan = $query4['id_plan'];
$id_posada = $query4['id_posada'];
$nombre_posada = $query4['nombre_posada'];
$nombre_plan = $query4['nombre_plan'];
$descripcion_plan = $query4['descripcion_plan'];
$incluye = $query4['incluye'];
$desde = $query4['desde'];
$hasta = $query4['hasta'];
$precio_adultos_a = $query4['precio_adultos_a'];
$lafoto = $id_posada . "_" . $id_plan . "." . "jpg";
echo
"
<form action='cotizacion2.php' method='get'>
<table id='tabla_plan' class='borde'>
<tr>
<td><input name='id_plan' type='hidden' value='".$id_plan."' />
<input name='id_posada' type='hidden' value='".$id_posada."' />
<input name='nombre_posada' type='hidden' value='".$nombre_posada."' />
<h3>$nombre_plan</h3>
<input name='nombre_plan' type='hidden' value='".$nombre_plan."' />
<br>
<img src='$rut$lafoto' />
</td>
<td align='justify'>
<h3>Posada: $nombre_posada</h3>
<br>
<h4>$descripcion_plan</h4>
<br>
<h2><a href='javascript:f_verDetalle(".$query4["id_plan"].");'>Restaurantes asociados</a></h2>
</td>
<td bgcolor='#FFFFD9'>
<h2>Habitación por noche</h2>
<br>
<h1>Bs. $precio_adultos_a</h1>
<br>
<input class='bt1' name='Cotizar' value='Cotizar' type='submit' alt='SUBMIT' />
</td>
</tr>
<br>
</table>
</form>
";
}
//creamos el menú paginación...
$paginacion = '<p>';
$paginacion .= ($pagActual > 1) ? '<a href="'.$_SERVER['PHP_SELF'].'?pag='.($pagActual - 1).'&nombre_etiqueta='.$nombre_etiqueta.'">Anterior</a> ' : 'Anterior ';
for($i=1; $i<=$totalPags; $i++) {
$paginacion .= ($i == $pagActual) ? '<strong>'.$i.'</strong> ' : '<a href="'.$_SERVER['PHP_SELF'].'?pag='.$i.'&nombre_etiqueta='.$nombre_etiqueta.'">'.$i.'</a> ';
}
$paginacion .= ($pagActual < $totalPags) ? '<a href="'.$_SERVER['PHP_SELF'].'?pag='.($pagActual + 1).'&nombre_etiqueta='.$nombre_etiqueta.'">Siguiente</a>' : 'Siguiente';
$paginacion .= '</p>';
echo $paginacion;
}
Nota: ojo, no lo eh probado ya que no tengo tu db, pero debería funcionar al menos teoricamente >.<
Actualización: veo que el ultimo código que publicaste no es el mismo que el anterior a este, así que me equivoqué en la variable GET 'nombre_etiqueta', el cual ya fue corregido >.<, también los comentarios que hice fueron hacia el ultimo código que publicaste, no al primero, pero de todas maneras deberías checarlos