Foros del Web » Programando para Internet » PHP »

Que falla en este codigo??

Estas en el tema de Que falla en este codigo?? en el foro de PHP en Foros del Web. Este codigo sirve (en la paginación de elementos de una BBDD) para construir en una fila de una tabla, enlaces a las paginas que tiene ...
  #1 (permalink)  
Antiguo 10/07/2003, 09:37
Avatar de indiestudio  
Fecha de Ingreso: julio-2003
Mensajes: 163
Antigüedad: 14 años, 5 meses
Puntos: 1
Que falla en este codigo??

Este codigo sirve (en la paginación de elementos de una BBDD) para construir en una fila de una tabla, enlaces a las paginas que tiene esa paginación.
Los enlaces a las páginas aparecen en la fila de la tabla que quiero, pero cada vez que le doy a un numerito, en la siguiente página me aparencen estos mal colocados.

Gracias por vuestra ayuda.

if ($total_paginas > 1){
echo"<tr>";
echo' <td colspan="7">';
for ($i=1;$i<=$total_paginas;$i++){

if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
echo " ".$pagina. " ";
else

//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo" ";
echo '<a href="paginacion.php?pagina="'. $i .'">' . $i . '</a>';

}
echo "</td>";
echo "</tr>";
}
  #2 (permalink)  
Antiguo 10/07/2003, 09:53
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 15 años, 8 meses
Puntos: 2
q error te lanza?
__________________
http://www.chorcha.com
  #3 (permalink)  
Antiguo 10/07/2003, 10:07
Avatar de indiestudio  
Fecha de Ingreso: julio-2003
Mensajes: 163
Antigüedad: 14 años, 5 meses
Puntos: 1
no hay error simplemente no pasa la variable y los numeros no aparecen bien colocados
  #4 (permalink)  
Antiguo 10/07/2003, 10:12
Avatar de indiestudio  
Fecha de Ingreso: julio-2003
Mensajes: 163
Antigüedad: 14 años, 5 meses
Puntos: 1
Este es el codigo completo
<?
//conecto con la base de datos
$conn = mysql_connect("h","u","p");
mysql_select_db("db",$conn);
//Limito la busqueda
$TAMANO_PAGINA = 10;
//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;

}
//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from newssumilleres";
$rs = mysql_query($ssql,$conn);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
echo'<table width="90%" height="90%" border="1">';
echo' <tr>';
echo' <td align="center" valign="middle"><table border="1" cellspacing="12">';
echo' </tr>';
echo' <tr> ';
echo' <td colspan="6">Noticias: '.$num_total_registros.'</td>';
echo' </tr>';
echo' <tr> ';
echo' <td colspan="6">Mostrando la página '.$pagina.' de '.$total_paginas.'</td>';
echo' </tr>';
//construyo la sentencia SQL
$ssql = "select * from newssumilleres limit " . $inicio . "," . $TAMANO_PAGINA;
$rs = mysql_query($ssql);
while ($fila = mysql_fetch_array($rs)){
echo' <tr> ';
echo' <td>Titulo<br>'.$fila["Titulo"].'</td>';
echo' <td>Autor<br> '.$fila["Autor"].'</td>';
echo' <td>Fecha<br> '.$fila["Fecha"].'</td>';
echo' <td width="60">Noticia<br>'.$fila["Texto"].'</td>';
echo' <td><div align="right"><img src="'.$fila["Imagen"].'" width="100" height="75"></div></td>';
echo' <td ><a href="comentar.php?id="'.$fila["ID"].'">Comentar</a></td>';
echo' <td ><a href="comentar.php?id="'.$fila["ID"].'">Ver comentarios</a></td>';
echo'</tr>';
}

//cerramos el conjunto de resultados y la conexión con la base de datos
//mysql_free_result($rs);
mysql_close($conn);
//muestro los distintos índices de las páginas, si es que hay varias páginas
echo"<tr>";
echo'<td colspan="7">';

if ($total_paginas > 1){

for ($i=1;$i<=$total_paginas;$i++){

if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
echo $pagina. " ";
else

//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página

echo "<a href='paginacion.php?pagina=" . $i . "'>" . $i . "</a> ";

}

}
echo "</td>";
echo "</tr>";
echo' </table></td>';

?>
  #5 (permalink)  
Antiguo 11/07/2003, 21:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
"No pasa la variable" ...?¿ Cual? .. de donde a donde? .. Especifica mejor tus pruebas realizadas y detalla el problema.

A simple vista .. veo algunas cosas que si bien pueden funcionan no son del todo correctas:

$pagina = $_GET["pagina"];
if (!$pagina) {

deberias usar:

if(!empty($_GET["pagina"])){
// y asingas tu $pagina en el "else" cuando corresponda ..

Así te evitaras mensajes de "notice" por no tener tu indice definido (el del array superglobal GET) cuando no exista esa variable 'pagina' en el "query string". (en el URL). Ademas que estarás expresando correctamente lo que pretendes hacer "si no está definida la variable tal .. o sin valor (NULL) ... haz tal cosa")

El resto .. no lo he probado, entre otras cosas por qué trabajas con una tabla y datos .. los cuales no los tenemos como para testearlo y observar que sucede. Por eso te pido que seas más precisos en lo que haga o no haga el script.

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 02:09.