Foros del Web » Programando para Internet » PHP »

enlace en web modular no funciona

Estas en el tema de enlace en web modular no funciona en el foro de PHP en Foros del Web. Hola, tengo una web modular en la que cargo dentro del contenido una tabla mysql la que puedo editar, eliminar, modificar y agregar registros. Esta ...
  #1 (permalink)  
Antiguo 02/09/2009, 21:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años
Puntos: 0
enlace en web modular no funciona

Hola, tengo una web modular en la que cargo dentro del contenido una tabla mysql la que puedo editar, eliminar, modificar y agregar registros.

Esta tabla se me muestra compaginado en varias páginas.

el problema es cuando intento pasar de una a otra.

les explico como tengo armado todo esto.

como es obvio en el index hago un include al archivo pages.php que en este tengo la configuración para los links de la siguiente forma:
pages.php
Código PHP:
<?php
if (!isset($_GET['page'])) {
    include(
"pages/homepage.php");
} else {
    include(
"pages/".$_GET['page'].".php");
}
?>

Les pondré un ejemplo como tengo los links, en este caso para ver un registro de la tabla en especifico y que funciona:

Código PHP:
<td class="<?php echo $style ?>"><a href="index.php?page=ciudad&a=view&recid=<?php echo $i ?>">Ver</a></td>
y acá el que me causa conflicto:

Código PHP:
<td>&nbsp;<a href="index.php?page=ciudad&page=<?php echo $page 1 ?>">Next&nbsp;&gt;&gt;</a>&nbsp;</td>


Me da el siguiente error:

Warning: include(pages/2.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\wmfModular\includes\pages.php on line 5

Warning: include() [function.include]: Failed opening 'pages/2.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\wmfModular\includes\pages.php on line 5

Deduzco que como tengo configurado el pages.php lo que hace es que al final de $page+1 es decir 2 lo transforma a 2.php.

Pero no entiendo como hacer para que deje de cumplir esa norma, ¿tendré que editar de alguna forma el include pages.php?
  #2 (permalink)  
Antiguo 02/09/2009, 21:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: enlace en web modular no funciona

Lo que pasa es que tu script ocupa la variable page, y en el link (que no te funciona) estas repitiendo dos veces page, en el seguno sobreescribes al primero, vas a tener que cambiar el nombre de la variable para pasarla o si no te va a pasar siempre ese error.

Saludos.
  #3 (permalink)  
Antiguo 02/09/2009, 21:55
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 1 mes
Puntos: 16
Respuesta: enlace en web modular no funciona

lo que veo es que estas cargando paginas que deberian existir en el directorio, no entiendo como determinas que pagina es la primera y cual la segunda, por otro lado estas definiendo dos veces page en la url, para una mejor paginacion deberias tener un sistema de archivos a traves de resultados de la base de dato, que te liste los primero 10 resultados cuando vas a la pagina 2 te lista desde el 11 en al 21, pero no se si es realmente lo que queres hacer.
  #4 (permalink)  
Antiguo 02/09/2009, 22:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años
Puntos: 0
Respuesta: enlace en web modular no funciona

Código PHP:
<?php
  
global $pagerange;

  if (
$pagecount 1) {

  if (
$pagecount $pagerange != 0) {
    
$rangecount intval($pagecount $pagerange) + 1;
  }
  else {
    
$rangecount intval($pagecount $pagerange);
  }
  for (
$i 1$i $rangecount 1$i++) {
    
$startpage = (($i 1) * $pagerange) + 1;
    
$count min($i $pagerange$pagecount);

    if (((
$page >= $startpage) && ($page <= ($i $pagerange)))) {
      for (
$j $startpage$j $count 1$j++) {
        if (
$j == $page) {
?>
¿aclara algo?
  #5 (permalink)  
Antiguo 02/09/2009, 22:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: enlace en web modular no funciona

Como te comente, debes de usar otra variable para paginar, no puedes usar la misma porque ya la usas para la web modular, necesitas usar variables diferentes para que funcione.

Saludos.
  #6 (permalink)  
Antiguo 03/09/2009, 07:34
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Respuesta: enlace en web modular no funciona

Ojopex, hace un tiempo escribí justamente un tutorial sobre como hacer webs modulares. Quizás te sirva, ya que la técnica que estás utilizando para incluir páginas, es bastante insegura:

http://www.zonaphp.com/creando-webs-modulares/

Espero que te sirva.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #7 (permalink)  
Antiguo 03/09/2009, 23:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 48
Antigüedad: 15 años
Puntos: 0
Respuesta: enlace en web modular no funciona

Hola, continuo con el problema pero una traba siguiente, les cuento:

Cambie el nombre de la variabla $page que estaba repetida a $cpage, bien, no me dio error, pero ahora no me cambia a la siguiente página de la compaginación, les muestro el código.



Código PHP:
<?php 
function select()
  {
  global 
$a;
  global 
$showrecs;
  global 
$cpage;

  
$res sql_select();
  
$count sql_getrecordcount();
  
$cpage 1;
  if (
$count &#37; $showrecs != 0) {    //<<<no se porque sale eso como comentario seria ($count % $showrecs != 0) {
    
$pagecount intval($count $showrecs) + 1;
  }
  else {
    
$pagecount intval($count $showrecs);
  }
  
$startrec $showrecs * ($cpage 1);
  if (
$startrec $count) {mysql_data_seek($res$startrec);}
  
$reccount min($showrecs $cpage$count);
?>
<table class="bd" border="0" cellspacing="1" cellpadding="4">
<tr><td><h2>Tabla Ciudad</h2></td></tr>
<tr><td>Mostrando Resultados <?php echo $startrec 1 ?> al <?php echo $reccount ?> de <?php echo $count ?></td></tr>
</table>
<hr size="1" noshade>
<br>
<table class="tbl" border="0" cellspacing="1" cellpadding="5"width="100%">
<tr>
<td class="hr">&nbsp;</td>
<td class="hr">&nbsp;</td>
<td class="hr">&nbsp;</td>
<td class="hr"><?php echo "cod" ?></td>
<td class="hr"><?php echo "nombre" ?></td>
</tr>
<?php
  
for ($i $startrec$i $reccount$i++)
  {
    
$row mysql_fetch_assoc($res);
    
$style "dr";
    if (
$i != 0) {
      
$style "sr";
    }
?>
<tr>
<td class="<?php echo $style ?>"><a href="index.php?page=ciudad&a=view&recid=<?php echo $i ?>">Ver</a></td>
<td class="<?php echo $style ?>"><a href="index.php?page=ciudad&a=edit&recid=<?php echo $i ?>">Editar</a></td>
<td class="<?php echo $style ?>"><a href="index.php?page=ciudad&a=del&recid=<?php echo $i ?>">Borrar</a></td>
<td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["cod"]) ?></td>
<td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["nombre"]) ?></td>
</tr>
<?php
  
}
  
mysql_free_result($res);
?>
</table>
<br>
<?php showpagenav($cpage$pagecount); ?>
<?php 
?>

<?php function showrow($row$recid)
  {
?>
<table class="tbl" border="0" cellspacing="1" cellpadding="5"width="50%">
<tr>
<td class="hr"><?php echo htmlspecialchars("cod")."&nbsp;" ?></td>
<td class="dr"><?php echo htmlspecialchars($row["cod"]) ?></td>
</tr>
<tr>
<td class="hr"><?php echo htmlspecialchars("nombre")."&nbsp;" ?></td>
<td class="dr"><?php echo htmlspecialchars($row["nombre"]) ?></td>
</tr>
</table>
<?php ?>

<?php function showroweditor($row$iseditmode)
  {
  global 
$conn;
?>
<table class="tbl" border="0" cellspacing="1" cellpadding="5"width="50%">
<tr>
<td class="hr"><?php echo htmlspecialchars("nombre")."&nbsp;" ?></td>
<td class="dr"><input type="text" name="nombre" maxlength="50" value="<?php echo str_replace('"''&quot;'trim($row["nombre"])) ?>">
</td>
</tr>

</table>

<?php ?>

<?php function showpagenav($cpage$pagecount)
{
?>

<table class="bd" border="0" cellspacing="1" cellpadding="4">
<tr>
<td><a href="index.php?page=ciudad&a=add">Agregar</a>&nbsp;</td>
<?php if ($cpage 1) { ?>
<td><a href="index.php?page=ciudad&cpage=<?php echo $cpage 1 ?>">&lt;&lt;&nbsp;Anterior</a>&nbsp;</td>
<?php ?>
<?php
  
global $pagerange;

  if (
$pagecount 1) {

  if (
$pagecount $pagerange != 0) {
    
$rangecount intval($pagecount $pagerange) + 1;
  }
  else {
    
$rangecount intval($pagecount $pagerange);
  }
  for (
$i 1$i $rangecount 1$i++) {
    
$startpage = (($i 1) * $pagerange) + 1;
    
$count min($i $pagerange$pagecount);

    if (((
$cpage >= $startpage) && ($cpage <= ($i $pagerange)))) {
      for (
$j $startpage$j $count 1$j++) {
        if (
$j == $cpage) {
?>
<td><b><?php echo $j ?></b></td>
<?php } else { ?>
<td><a href="index.php?page=ciudad&cpage=<?php echo $j ?>"><?php echo $j ?></a></td>
<?php } } } else { ?>
<td><a href="index.php?page=ciudad&cpage=<?php echo $startpage ?>"><?php echo $startpage ."..." .$count ?></a></td>
<?php } } } ?>
<?php 
if ($cpage $pagecount) { ?>
<td>&nbsp;<a href="index.php?page=ciudad&cpage=<?php echo $cpage 1 ?>">Next&nbsp;&gt;&gt;</a>&nbsp;</td>
<?php ?>
</tr>
</table>
Ojalá me puedan ayudar es tan poquito lo que falta para esto y no entiendo por donde va la cosa.

Última edición por Ojopex; 03/09/2009 a las 23:40
  #8 (permalink)  
Antiguo 04/09/2009, 00:24
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 1 mes
Puntos: 16
Respuesta: enlace en web modular no funciona

una pregunta, porque me mareo tu codigo, que deberia mostar en la siguiente pagina?. Osea, estas trabajando con resultados de la bd, pero no entiendo tu paginacion, donde delimitas que empieza una pagina y/o termina (en una consulta LIMIT 0,10 | 11,21)
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 10:19.