Foros del Web » Programando para Internet » PHP »

Barra de navegacion por juego de registros

Estas en el tema de Barra de navegacion por juego de registros en el foro de PHP en Foros del Web. Hola amigos. Mirad, quiero hacer lo siguiente, a ver si me podeis ayudar. Lo que quiero es moverme por los registros pero de la bd. ...
  #1 (permalink)  
Antiguo 27/11/2009, 14:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 8 meses
Puntos: 6
Barra de navegacion por juego de registros

Hola amigos. Mirad, quiero hacer lo siguiente, a ver si me podeis ayudar.

Lo que quiero es moverme por los registros pero de la bd. Es decir, genero una conexion a una bd, genero una consulta y la ejecuto. Esta consulta me devuelve, por ejemplo, 10 registros. En la web, muestro el primer registro (que tendrá 5 campos o los que sean). Para ver los otros nueve registros, quiero una barra de navegacion (en Dreamweaver se denomina exactamente "barra de navegacion por juego de registros) para ir al siguiente, al ultimo, al anterior o al primero (como en Access, por ejemplo).

Esto lo he hecho con Dreamweaver y funciona, pero no me entero del codigo, y no quiero tener un codigo que aunque funcione, no sepa como.

Gracias por ayudarme. Un saludo.
  #2 (permalink)  
Antiguo 27/11/2009, 14:07
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 3 meses
Puntos: 334
Respuesta: Barra de navegacion por juego de registros

podrias poner el codigo para saber de que hablas..
aqui te lo traducimos :B
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 27/11/2009, 14:11
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 8 meses
Puntos: 6
Respuesta: Barra de navegacion por juego de registros

Hola. Gracias por responder. El codigo es superextenso, pero vamos, no es ni mas ni menos que el que te genera Dreamweaver cuando usas el menu insertar - objeto de datos - paginacion de juego de registros - barra de navegacion por juego de registros.

Yo si quieres lo pongo, pero creo que va a ser mas lioso.

Tu me dices si lo pongo o no, vale?. Un saludo.
  #4 (permalink)  
Antiguo 27/11/2009, 14:15
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 3 meses
Puntos: 334
Respuesta: Barra de navegacion por juego de registros

:O sorry pero no todos tenemos y/o usamos dreamweaver
mucha gente opta por otros programas .. entre ellos yo al darme cuenta de que dreamweaver es muy caro limitado :P

si me das una idea o algun link donde ver el ejemplo te puedo ayudar!..

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 27/11/2009, 14:17
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 16 años, 6 meses
Puntos: 14
Respuesta: Barra de navegacion por juego de registros

No sera que lo que quieres es un paginado con n registros por consulta?

Si fuera ese el caso solo usas limit en tu consulta para limitar los resultados devueltos luego podrias crearte facilmente un paginado y si no conoces mucho sobre el tema te recomendaria que uses alguna clase de paginado hay muchas.

Si no es eso lo que deseas hacer pues te pediria que seas mas explicito asi podria ayudarte.

Saludos
__________________
:policia: Uno para todos y todos para uno.
  #6 (permalink)  
Antiguo 27/11/2009, 14:30
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 8 meses
Puntos: 6
Respuesta: Barra de navegacion por juego de registros

Perdon, tienes razon, no todo el mundo usa Dreamweraver. Te pongo el codigo. La primera parte, es el que va al inicio del archivo. La segunda parte, son los cuatro enlaces para moverse por los registros (siguiente, anterior, ultimo, primero)

PRIMERA PARTE DEL CODIGO.

<?php require_once('../../../../Connections/miconexion.php');

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_Recordset1 = 1;
$pageNum_Recordset1 = 0;
if (isset($_GET['pageNum_Recordset1'])) {
$pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

mysql_select_db($database_miconexion, $miconexion);
$query_Recordset1 = "SELECT usuarios.ID, usuarios.usuario FROM usuarios";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $miconexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);

if (isset($_GET['totalRows_Recordset1'])) {
$totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
} else {
$all_Recordset1 = mysql_query($query_Recordset1);
$totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

$queryString_Recordset1 = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_Recordset1") == false &&
stristr($param, "totalRows_Recordset1") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);
?>

SEGUNDA PARTE DEL CODIGO

?>
<table border="0">
<tr>
<td><?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, 0, $queryString_Recordset1); ?>">Primero</a>
<?php } // Show if not first page ?>
</td>
<td><?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, max(0, $pageNum_Recordset1 - 1), $queryString_Recordset1); ?>">Anterior</a>
<?php } // Show if not first page ?>
</td>
<td><?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, min($totalPages_Recordset1, $pageNum_Recordset1 + 1), $queryString_Recordset1); ?>">Siguiente</a>
<?php } // Show if not last page ?>
</td>
<td><?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, $totalPages_Recordset1, $queryString_Recordset1); ?>">&Uacute;ltimo</a>
<?php } // Show if not last page ?>
</td>
</tr>
</table>
</body>

</html>
<?php
mysql_free_result($Recordset1);
?>
  #7 (permalink)  
Antiguo 27/11/2009, 14:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 8 meses
Puntos: 6
Respuesta: Barra de navegacion por juego de registros

HOla Sander. Gracias por interesarte tu tambien. Efectivamente, entiendo que hay que usar limit para conseguir lo que quiero, ya que si una consulta de vuelve todos los registros, pues evidentemente, los va a mostrar, y yo quiero que me muestre solamente uno y despues ir moviendome a los siguientes pulsando enlaces. El problema es que lo que tu entiendes por paginado no se si es lo mismo que entiendo yo. Si conoces Access, en un formulario con varios registros, abajo del formulario tienes una barra de navegacion con 5 flechitas para moverte por cada uno de los registros de ese formulario. No se si te refieres tu a eso.
  #8 (permalink)  
Antiguo 27/11/2009, 14:35
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 10 años, 3 meses
Puntos: 334
Respuesta: Barra de navegacion por juego de registros

eso es un paginador...

solo tienes que jugar con los datos de la consulta

SELECT * FROM noticias LIMIT $inicio, $fin

en donde inicio y fin seran los limites de los resultados..

ejemplo en el boton siguiente pones por get index.php?pagina=2

entonces multiplicas por la cantidad de resultados por pagina que quieras

$cant_por_pagina = 10;
$pagina = $_GET["pagina"];

$inicio = $cant_por_pagina * $pagina;
$fin = $inicio + $cant_por_pagina;

es basicamente eso...

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 27/11/2009, 15:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 735
Antigüedad: 10 años, 8 meses
Puntos: 6
Respuesta: Barra de navegacion por juego de registros

Hola, bueno, llevo un rato y de momento no doy con ello. Aunque creo que la idea la he codigo, no consigo que vaya sumando de uno en uno. Como creo que voy a tardar, os doy las gracias y en cuanto tenga algo os contesto. Gracias.
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 01:37.