Gracias por tu ayuda el error del 0 esta solucionado y como decias no habiamos dado valor a $registros pero bueno error de logica jeje. Ya me hace bien la busqueda me pinta mis 10 registros con las respectivas paginas y todo...pero el error ahora es que al darle en "siguiente" me vuelve a poner la busqueda como si no la hubiera hecho me recarga el frame (por que cabe aclarar que tengo un catalogo.html con iframe donde muestro consultas.php) dicho esto continuo.. me recarga el frame y me sale como si no hubier busqueda no se si el problema es el iframe o el hecho de usar 2 metodos GET y POST como bien me lo mencionaste anteriormente si es asi me podrias ayudar a solucionarlo?? te dejo los codigos de los 2 archivos
catalogo.html
Código HTML:
<FORM ACTION="consultas.php" METHOD="post" name="Cargarconsulta" target="busqueda" id="Cargarconsulta">
<table width="96%" height="163" border="0" align="center" cellpadding="0" cellspacing="0" class="info">
<tr><td><table height="575" border="0">
<tr>
<td>
<span class="Estilo3">Busqueda: </span>
<input type="text" name="txtEXPR1" size="50" value=""> </td>
<td><input type="submit" value="Iniciar búsqueda" class="BotonSubmit"> </td>
</tr>
<tr>
<td align="right"><div align="center"><span class="Estilo5">Buscar </span>
<select name="opCAMPO1" size="1">
<option value="0"> --- </option>
<option value="1">Por Título</option>
<option value="2">Por Tema</option>
</select>
</div>
<div align="center"><span class="Estilo5">Tabla </span>
<select name="opCAMPO2" size="1">
<option value="0"> --- </option>
<option value="1">INEGI</option>
<option value="2">VIDEOS</option>
</select>
</div></td>
<input type="reset" value="Restablecer" class="BotonClear"></td>
</tr>
<tr>
<td width="100%" height="496" colspan="2" align="center"><div align="center"><span class="Estilo5"></span>
<iframe id="busqueda" src="consultas.php" name="busqueda" style="width:545px; height:475px"></iframe></td>
</tr>
</table>
</td>
</tr>
</table></FORM>
Consultas.php
Código PHP:
<table width="100%" border="0">
<tr>
<td width="99%" align="center"><span class="Estilo1">Resultado de la busqueda:</span></td>
<td width="1%"> </td>
</tr>
<tr>
<td>
<?php
$Tbusq = $_POST["opCAMPO1"];
$accion = $_POST["txtEXPR1"];
$registros = 10; //Número de registros por pagina
$pagina = (isset($_GET['pagina'])) ? $_GET['pagina'] : 1; //Si esta definida $_GET['pagina'] cojemos su valor, si no hay nada la primera pagina es 1
//Aquí ya tienes otro problema por que la pagina se pasa por GET
//Y los paremetros de busqueda por POST y al cambiar de pagina estos no se mandan.
//Te recomiendo usar solo POST o GET, o en su defecto guardar los valores en cookies.
$sql = "SELECT num, titulo, tema FROM inegi";
switch($Tbusq)
{
//Si $Tbusq es igual a 1
case 1:
$sql .= " WHERE titulo LIKE '%$accion%'";
break;
//Si $Tbusq es igual a 2
case 2:
$sql .= " WHERE tema LIKE '%$accion%'";
break;
case '':
default:
exit('Selecciona un tipo de busqueda');
//Como no tenemos busqueda no queremos saber nada mas
break;
}
//Realizar una consulta en la BD:
$resultados = mysql_query($sql);
$total_registros = mysql_affected_rows();
$total_paginas = ceil($total_registros / $registros);
if($total_registros && $total_registros != -1)
{
$inicio = ($pagina - 1) * $registros; //Donde empezamos
//Ahora si queremos un limite de consultas
$sql .= " LIMIT $inicio, $registros";
$resultados = mysql_query($sql);
while ($row = mysql_fetch_array($resultados))
{
//Mientras tengamos resultados
echo "<p><strong>Num. </strong>". $row['num'] ." - <strong>Titulo: </strong> ". $row['titulo'] ."<strong> Tema: </strong>". $row['tema'] ."</p>";
//echo "<P>", "<strong>", "Num. ", "</strong>", $row["num"], " - ", "<strong>", "Titulo: ", "</strong>", $row["titulo"], "<strong>", " Tema: ", "</strong>", $row["tema"], "</P>";
}
//Ahora mostramos la paginacion
echo "<center>";
if($pagina > 1)
{
echo "<a href='consultas.php?pagina=".($pagina--)."'>< Anterior</a> ";
}
for ($i = 1; $i <= $total_paginas; $i++)
{
if ($i == $pagina)
{
//Si esta es la pagina en la que estamos
echo "<b>".$i."</b> ";
}
else
{
echo "<a href=\"consultas.php?pagina=$i\">$i</a> ";
}
}
if ($pagina < $total_paginas)
{
//Si tenemos mas páginas que la actual
echo " <a href=\"consultas.php?pagina=".($pagina++)."\">Siguiente ></a>";
}
echo '</center>';
}
else
{
exit("<font color='darkgray'>(sin resultados)</font>");
//No queremos nada mas
}
?>
</td>
<td>
</td>
</tr>
</table>