Foros del Web » Programando para Internet » PHP »

Funciona bien PHP con SQL via ODBC y pagina OK

Estas en el tema de Funciona bien PHP con SQL via ODBC y pagina OK en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/01/2003, 12:49
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Funciona bien PHP con SQL via ODBC y pagina OK

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))
{
$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

Última edición por Chuty; 24/01/2003 a las 13:00
  #2 (permalink)  
Antiguo 24/01/2003, 15:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si funciona bien y lo consideras .. podrias poner este código como una FAQ de PHP (en el mensaje de las FAQ's de PHP) ..

Acuerdate de poner el código usando el boton "PHP" el cual pondrá el código coloreado para mejor lectura ..

Y si te animas .. pon algunos comentarios de q consite la paginacion via ODBC (por lo menos la metodología) que usas en este ejemplo .. y si no es mucho pedir .. q comentes algo el código con lo q vas haciendo en cada punto o bloque ...

Así nos servirá de "tutorial" o incluso como "empujon" para que alguien saque su propia versión de este paginador ODBC.

Un saludo,
  #3 (permalink)  
Antiguo 23/08/2006, 17:15
 
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
  #4 (permalink)  
Antiguo 23/08/2006, 19:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Gracias por el aporte ... Les invito a publicar esta soluciòn como FAQ (como en su tiempo ya dije (que hace años ya de esto xD))

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.