Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/08/2006, 17:15
sanventru
 
Fecha de Ingreso: julio-2006
Mensajes: 20
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo

Cita:
Iniciado por Chuty Ver Mensaje
Solucion para Paginar PHP con SQL via ODBC
<html>
<head>
<title>Visualización de Funcionarios</title>
</head>
<FORM ACTION="prueba3.php" METHOD="POST">

<b>&nbsp;Seleccione una Entidad&nbsp;&nbsp;</b>
<select name='Sucursal' size='1'>
<?php
echo "<option value='Sucursal 1.'";
if ($Sucursal=="Sucursal 1") {
echo " selected";
}
echo ">Sucursal 1</option>";
echo "<option value='Sucursal 2'";
if ($Sucursal=="Sucursal 2") {
echo " selected";
}
echo ">Sucursal 2</option>";
echo "<option value='Sucursal 3'";
if ($Sucursal=="Sucursal 3") {
echo " selected";
}
echo ">Sucursal 3</option>";
?>
</select>

&nbsp; <INPUT TYPE="Submit" VALUE="Aceptar" >
</FORM>

<table border="0" width="99%">
<tr>
<td width="27%">
<FORM ACTION="prueba5.php" METHOD="POST">
<input type="text" NAME="uno" size="7" maxlength="6">&nbsp;
<input type="Submit" value="Buscar Nro" >
</FORM>
</td>
<td width="73%">
<FORM ACTION="prueba42.php" METHOD="POST">
<input type="text" NAME="masini" size="38" maxlength="20">&nbsp;&nbsp;&nbsp;&nbsp;
<input type="Submit" value="Buscar AyN" >
</FORM>
</td>
</tr>
</table>
<hr size="3" width="100%" color="#000000">


</html>

<?php
$entidad = $Sucursal;

echo "<caption align='left'><FONT FACE='Arial' SIZE='4' COLOR='#336699'><b><center>$entidad</center></FONT></b></caption>";
echo '<table border="5" width="100%" bordercolorlight="#80ff80" bordercolordark="#8000ff">';
echo '<tr>';
echo '<td ><font face="Arial" size="2"><b>Cod.Pais.</b></td>';
echo '<td ><font face="Arial" size="2"><b>Entidad Seleccionada.</b></td>';
echo '<td ><font face="Arial" size="2"><b>Nº Firma.<b></td>';
echo '<td ><font face="Arial" size="2"><b>Nombre y Apellido del Funcionario.</b></td>';
echo '<td ><font face="Arial" size="2"><b>Grp. Legal</b></td>';
echo '</tr> ';

$valor = $num;
// Se establece la conexión con la fuente de datos
$conex = odbc_connect("MISERVER", "sa", "sa");
IF ($num>0) { $n=$num;} ELSE { $n=0; }

$consulta = "select COD_PAIS, COD_CORP, NUM_FIR, NOM_CLI, GRP_LEG from clientes.tmp_sucursal
where cod_corp='$entidad' order by nom_cli ";


$resultado = odbc_do($conex, $consulta);

$Num_Campos = odbc_num_fields($resultado);
$Num_Filas = 0;

// Se recorre el cursor
while (odbc_fetch_row($resultado))
{
$Num_Filas++;
for ($i = 1; $i <= $Num_Campos; $i++)
if (odbc_result($resultado, $i))
echo "</TR>";echo "\n";
} // de todas las tuplas respuesta: el while

// ********* Si noy hay datos se indica *******************
if ($Num_Filas == 0)
{
echo "<TR><TD COLSPAN=9><CENTER>";
echo "No hay clientes";
echo "</CENTER></TD></TR>\n";
}

// Buscar 10 registros = $rp

$rp = '10';
$ps = '1';
$total = ($rp + $num) ;

$query = "select COD_PAIS, COD_CORP, NUM_FIR, NOM_CLI, GRP_LEG from clientes.tmp_sucursal
where cod_corp='$entidad' order by nom_cli ";

$resul = odbc_do($conex, $query);

$N_Campos = odbc_num_fields($resul);
$N_Filas = 0;

if($num > 0) {
for ($x = 1; $x <= $num; $x++) {
odbc_fetch_row($resul);
}
}


// Se recorre el cursor
// while (odbc_fetch_row($resul))
// {

//deberia ser asi:
for ($y=1; $y<=$rp ;$y++)
{
odbc_fetch_row($resul);

$N_Filas++;
echo "<TR>";
for ($is = 1; $is <= $N_Campos; $is++)
{
echo "<TD ><font face='Courier New' size='2'>";
if (odbc_result($resul, $is))
echo odbc_result($resul, $is);
echo "</TR>";echo "\n";
} //de los campos de una tupla: el for
echo "</TR>";echo "\n";
} // de todas las tuplas respuesta: el while
// Si noy hay datos se indica
if ($N_Filas == 0)
{
echo "<TR><TD COLSPAN=9><CENTER>";
echo "No hay clientes";
echo "</CENTER></TD></TR>\n";
}
echo "</TABLE>\n";


// PAGINACIÓN
echo "<HR><TABLE BORDER='0' ALIGN='center' WIDTH='95%'><TR>";
//Muestra por pantalla el número total de artículos encontrados
echo "<TD ALIGN='left'> Encontrados <B>$Num_Filas</B> registros </TD>";
echo "<TD ALIGN='RIGHT'> <b>$rp</b> Registros por Pagina </TD>";
echo "</TABLE>\n";

echo "<HR><TABLE BORDER='0' ALIGN='center' WIDTH='95%'><TR>";
echo"<TD ALIGN='RIGHT'>";
echo "<FONT FACE='Arial' SIZE='-1' COLOR='#336699'><b>Páginas: </b></FONT>";

//Mientras $i no sea igual o superior al total encontrado se incrementa de 15 en 15. $i representa el identificador en la Tabla del número de registro que se buscará en el siguiente Select.

//$a es el número de páginas encontrado.

FOR ($i=0; $i< $Num_Filas; $i=$i+$rp)
{
$a=$a+1; //Incrementamos el número de página

//Si $n (número de registro donde empieza la busqueda actual actual) es igual a $i se marca en negrita para resaltar la página en la que estamos.
IF ($n==$i)
{
//Ponemos el link a la misma página peró con un número de registro cada vez diferente
echo "<A HREF='prueba3.php?num=".$i."'>[<B>".$a."</B>] </A> ";
}
ELSE
{
echo "<FONT FACE='Arial' SIZE='-1' COLOR='#336699'><A HREF='prueba3.php?num=".$i."'> ".$a." </A></FONT> ";
}
}
echo "</TD></TR></TABLE>";
echo "<br>";
echo "<HR><BR>\n";

//Se liberan recursos y se cierra la conexión
odbc_free_result($resul);
odbc_free_result($resultado);
odbc_close($conex);?>
</table>
</body>
</html>

Bueno espero que les sea Util a alguien mas ya que eh recivido ayuda de COTE pero con otro tipo de coneccion a la base de datos.
Saludos y Gracias a todos
Solo ese cambio , por lo demas genial
Saludos
Santiago