Foros del Web » Programando para Internet » PHP »

Sesion o paginador

Estas en el tema de Sesion o paginador en el foro de PHP en Foros del Web. Hola a todos, perdonar por el titulo pero no se si el problema esta en una variable de sesion o en el páginador. Vereis he ...
  #1 (permalink)  
Antiguo 18/03/2013, 15:40
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Sesion o paginador

Hola a todos, perdonar por el titulo pero no se si el problema esta en una variable de sesion o en el páginador.

Vereis he hallado un problema en la mi web y no me habia dado cuenta hasta ahora, asi que he intentado solucionarlo y no lo he encontrado, para ello incluso he hecho una versión reducidisima de la misma para verlo mas claro y ni aun así he podido encontrar el problema.

Lo que ocurre es que en inicio declaro unas variables de sesion y luego en la pagina coches.php hago una llamada a MenuLateral.php donde se encuentra el select que me da problemas y que se rellena desde una tabla, y tambien llamo a la pagina contenido.php que es donde muestro los resultados, utilizo el paginador "zebra_paginator.php" que hasta hoy no me ha dado ningún problema.

Mi problema es que selecciono en el select la ciudad de Barcelona y me muestra los coches de Barcelona, aunque cambie en numerosas ocasiones de pagina con el paginador me sigue mostrando los coches de Barcelona y el select sigue mostrando lo que he seleccionado la ciudad de "Barcelona" hasta aqui todo correcto. Pero si despues cambio de Barcelona a otra ciudad por ejemplo Madrid, me muestra los coches de Madrid y el select me muestra "Madrid" hasta que empiezo a utilizar el páginador, al cambiar de pagina con el mismo por ejemplo de la pagina 1 a la pagina 2 , me sigue mostrando los coches de la pagina 2 de Madrid que es lo correcto, pero el select cambia y me muestra la ciudad de "Zaragoza" que es la ultima de la tabla de la cual lee. Pero como he dicho el contenido que me muestra mientras cambio con el paginador siguen siendo los coches de Madrid osea lo que muestra sigue siendo correcto, solo el select funciona mal.

Muchas gracias a todos.

No me deja poner el codigo, cuando lo intento y voy a vista previa me envia a otra pagina, en cuanto pueda ponerlo lo pondre, ya se que así es imposible ayudarme.

Un saludo
__________________
¿Hay algo mas hermoso que ayudar.?
  #2 (permalink)  
Antiguo 18/03/2013, 15:52
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Sesion o paginador

Este es el codigo de INICIO:PHP
Código PHP:
Ver original
  1. <?php
  2. $_SESSION["numpag"]=250;
  3. $_SESSION["Ciudad"]="Todas las ciudades";
  4. // Aqui indico que al entrar por primera vez me ponga 250 coches por página
  5. // y presente los coches de todas las ciudades.
  6. ?>
  7. <head>
  8. </head>
  9. <body>
  10. <div id="Menu">
  11.    <a href="Coches.php">Coches</a>
  12. </div>
  13. </body>
Y este el de COCHES:PHP
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION))
  3. {
  4. }
  5. ?>
  6. <head>
  7.         <script type='text/javascript' src='Js/jquery-1.7.1.min.js'></script>
  8. </head>
  9. <?php
  10.         require_once('Connections/ConexionCoches.php');
  11.         if(isset($_GET["selregistrospagina"])){
  12.         $_SESSION["numpag"]=$_GET["selregistrospagina"];
  13.         }
  14.         $selregistrospagina=$_SESSION["numpag"];
  15. ?>
  16. <body>
  17. <div id="DivNumRegistrosPagina">
  18. <form name="Paginas" method="GET" action="Coches.php">
  19. <table width="195" height="30" border="0">
  20.   <tr>
  21.   <td align="center" class="ChicasPagina">Coches por página:</td>
  22.   <td align="center">
  23.   <select name="selregistrospagina" id="selregistrospagina" class="Guias3"  onchange="this.form.submit()" >
  24.         <option value="" selected><?php echo $_SESSION["numpag"];?></option>
  25. <?php
  26.     $tablaregistrospagina = mysql_query("SELECT * FROM registrospagina ORDER BY Paginas ASC");
  27.     while ($registroregistrospagina = mysql_fetch_array($tablaregistrospagina)) {
  28. ?>
  29. <option value="<?php echo $registroregistrospagina['Paginas']; ?>"><?php echo $registroregistrospagina['Paginas']; ?></option>
  30. <?php
  31.     }
  32.     mysql_free_result($tablaregistrospagina);
  33.         ?>
  34.     </select>
  35.     </td>
  36.     </tr>
  37.     </table>
  38.     </form>
  39. </div>
  40. <div id="DivFiltrado"><?php require ("MenuLateral.php"); ?></div>
  41. <div id='contenido'><?php require ("Contenido.php"); ?></div>
  42. <script type='text/javascript'>
  43. function cargarContenido(pagina)
  44. {
  45.     $("#contenido").html("<img src='clock.gif' class='clock' border='0' />");
  46.     $("#contenido").load(pagina, $("#filtrar").serialize());
  47. }
  48. </script>
  49. </body>
__________________
¿Hay algo mas hermoso que ayudar.?
  #3 (permalink)  
Antiguo 18/03/2013, 15:55
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Sesion o paginador

Este es el codigo de MENULATERA.PHP
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION))
  3. {
  4. }
  5. ?>
  6. <head>
  7. <?php
  8. if(isset($_GET["selciudad"])){
  9.         $_SESSION["Ciudad"]=$_GET["selciudad"];
  10.         }
  11.         $selciudad = $_SESSION["Ciudad"];
  12. ?>
  13. </head>
  14. <body>
  15. <form name="filtrar" id="filtrar" method="GET"  action="">
  16. <div id="accordion">
  17.     <table width="185" height="30" border="0" cellspacing="5">
  18. <tr>
  19. <td align="left">
  20.     <select name="selciudad" id="selciudad" class="Guias3" onChange="cargarContenido('Contenido.php')">
  21.     <option value="Todas las ciudades" selected>&nbsp;Todas las ciudades</option>
  22.     <option value="<?php echo $_SESSION["Ciudad"]; ?>" selected>&nbsp;&nbsp;<?php echo $_SESSION["Ciudad"]; ?></option>
  23. <?php
  24.     $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC");
  25.     while ($registrociudad  = mysql_fetch_array($tablaciudad ))
  26.         if (empty($_GET["selciudad"])<> '-1')  
  27.         {
  28.            echo "<option value='".$registrociudad['Provincia']."' selected>&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
  29.        }else{
  30.           echo "<option value='".$registrociudad['Provincia']."' >&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";      }
  31.     mysql_free_result($tablaciudad);
  32. ?>
  33. </select>
  34. </td>
  35. </tr>
  36. </table>
  37. </form>
  38. </div>
  39. </body>
este el ultimo el de CONTENIDO.PHP
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION))
  3. {
  4. }
  5. ?>
  6. <?php require_once('Connections/ConexionCoches.php');?>
  7. <?php
  8. if(isset($_GET["selregistrospagina"])){
  9.         $_SESSION["numpag"]=$_GET["selregistrospagina"];
  10.         }
  11.         $selregistrospagina=$_SESSION["numpag"];
  12.        
  13.         if(isset($_GET["selciudad"])){
  14.         $_SESSION["Ciudad"]=$_GET["selciudad"];
  15.         }
  16.         $selciudad=$_SESSION["Ciudad"];
  17.         echo $_SESSION["Ciudad"];
  18. ?>
  19.   <head>
  20.   <meta http-equiv="content-type" content="text/html;charset=UTF-8">
  21.         <link rel="stylesheet" href="Css/zebra_pagination.css" type="text/css">        
  22.         <link rel="stylesheet" href="Css/Coches.css" type="text/css">
  23.         <link rel="stylesheet" href="Css/ClassCoches.css" type="text/css">
  24.   </head>
  25. <?php
  26.         $records_per_page = $selregistrospagina;
  27.         require 'Zebra_Pagination/Zebra_Pagination.php';
  28.         $pagination = new Zebra_Pagination();
  29.        $pagination->records_per_page($records_per_page);
  30. ?>
  31. <body>
  32. <div id="Consulta">
  33.   <?php
  34. $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE Activacion = '1'";
  35.        if ($_SESSION["Ciudad"] <>'Todas las ciudades') {
  36.         $sql .= "AND coches.Ciudad = '$selciudad' ";
  37.        }else {$sql .= "AND coches.Ciudad <> 'Todas las ciudades' ";
  38. }
  39. $sql .= 'ORDER BY Ciudad ASC ';
  40. $sql .= 'LIMIT ' . (($pagination->get_page()- 1) * $records_per_page) . ', ' . $records_per_page . '';
  41.         if (!($result = @mysql_query($sql))) {
  42.             die(mysql_error()); }
  43.         $rows = mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));
  44.          $pagination->records($rows['rows']);
  45.          $pagination->records_per_page($records_per_page);
  46. $tabla = mysql_query($sql);
  47. while ($registro = mysql_fetch_array($tabla)) {
  48.         ?>
  49.  <div class="Prueba">
  50.  <table class="MarcoFotoPrincipal" width="183" border="0">
  51.   <tr>      
  52.           <td><a href="Ficha.php?Id=<?php echo $registro['Id']; ?>"><img border="0" src="<?php echo $registro['FotoPrincipal']; ?>" width="165px" height="240px"></a></td>        
  53.   </tr>
  54.   </table>
  55.  </div>
  56. <?php
  57. }
  58. ?>
  59. </div>
  60. <?php
  61.     $pagination->render();
  62. ?>
  63. <?php      
  64. echo "Página:  ";
  65. echo "<a class=\"Paginacion\">".$pagination->get_page()."</a>";
  66. echo "   de   ";
  67. echo "<a class=\"Paginacion\">".$pagination->_total_pages ."</a>";
  68. ?>
  69. <?php
  70. echo "Coches:&nbsp;&nbsp;";
  71. echo "<a class=\"Paginacion\">".$rows['rows'] ."</a>";
  72. ?>
  73. </body>
Ahora si podeis ayudarme, Gracias a todos.
__________________
¿Hay algo mas hermoso que ayudar.?
  #4 (permalink)  
Antiguo 18/03/2013, 16:32
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Sesion o paginador

No lo he probado pero intenta cambiando el codigo donde creas el select de las ciudades por este

Código PHP:
Ver original
  1. echo "<option value=""></option>";
  2.     $selected="";
  3.     $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC");
  4.     while ($registrociudad  = mysql_fetch_array($tablaciudad ))
  5.         if(isset($_SESSION["Ciudad"])){
  6.             if($_SESSION["Ciudad"]==$registrociudad['Provincia']){
  7.                 $selected="selected";
  8.             }
  9.         }elseif($registrociudad['Provincia']==$_GET["selciudad"]){
  10.                 $selected="selected";
  11.         }
  12.          echo "<option value='".$registrociudad['Provincia']."' ".$selected.">&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
  13.     mysql_free_result($tablaciudad);
  #5 (permalink)  
Antiguo 19/03/2013, 04:07
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Sesion o paginador

Gracias alex1084 por tu rapida respuesta, al margen de que sustitui unas comillas dobles por unas simples porque me daba error de sintaxis el código no me funciona ya que no me rellena el select he probado varias cosas y no lo consigo hacer funcionar.
Ahora te comento las pruebas que he hecho:
Código PHP:
Ver original
  1. <form name="filtrar" id="filtrar" method="GET"  action="">
  2. <div id="accordion">
  3.     <table width="185" height="30" border="0" cellspacing="5">
  4. <tr>
  5. <td align="left">
  6.     <select name="selciudad" id="selciudad" class="Guias3" onChange="cargarContenido('Contenido.php')">
  7.     <option value="Todas las ciudades" selected>&nbsp;Todas las ciudades</option>
  8.     <option value="<?php echo $_SESSION["Ciudad"]; ?>" selected>&nbsp;&nbsp;<?php echo $_SESSION["Ciudad"]; ?></option>
  9. <?php
  10. echo "<option value=''></option>";
  11.     $selected="";
  12.     $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC");
  13.     while ($registrociudad  = mysql_fetch_array($tablaciudad ))
  14.         if(isset($_SESSION["Ciudad"])){
  15.             if($_SESSION["Ciudad"]==$registrociudad['Provincia']){
  16.                 $selected="selected";
  17.             }
  18.         }elseif($registrociudad['Provincia']==$_GET["selciudad"]){
  19.                 $selected="selected";
  20.         }
  21.          echo "<option value='".$registrociudad['Provincia']."' ".$selected.">&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
  22.     mysql_free_result($tablaciudad);
  23. ?>
  24. </select> </td></tr></table> </form> </div>
Las pruebas que he realizado ha sido basicamente comentar las lineas 7 y 8, ambas o alternandolas y tambien he comentado durante las pruebas la linea 10 que es donde sustitui las comillas.
Como veras he puesto el div completo por si tu ves donde esta el error, porque estoy tan ofuscado despues de un monton de horas haciendo pruebas que me encuentro perdido.
Gracias por tu ayuda y por abusar de tu tiempo, Un saludo
__________________
¿Hay algo mas hermoso que ayudar.?
  #6 (permalink)  
Antiguo 19/03/2013, 06:02
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Sesion o paginador

Alex1084 por si sirve de algo te dire que me he dado cuenta de otra cosa.

En la web normal la completa ya que la que puse aqui el código esta muy reducido para ver el problema mejor, observo que ocurre tambien en otros selects que tengo en el mismo menu lateral por lo cual no creo que tenga nada que ver con las sesiones. Me ocurre por ejemplo que cuando en el de la ciudad me coge la ultima provincia de la tabla "Zaragoza" el Select de precios me muestra el ultimo precio y el select del modelo me coge el ultimo modelo y asi todos.
Creo que el problema debe de estar en este trozo de código pero aunque sigo haciendo pruebas me sigue fallando:
Código PHP:
Ver original
  1. if (empty($_GET["selciudad"])<> '-1')  
  2.         {
  3.            echo "<option value='".$registrociudad['Provincia']."' selected>&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
  4.        }else{
  5.           echo "<option value='".$registrociudad['Provincia']."' >&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";      }
Y porque creo que esta en este código el problema porque el select de Precio como veras tiene exactamente la misma estructura:
Código PHP:
Ver original
  1. if (empty($_GET["PreMin"])<> '-1')
  2.         {
  3.            echo "<option value='".$registropreciomin['Precio']."' selected>&nbsp;&nbsp;".$registropreciomin['Precio']."</option>";
  4.        }else{
  5.           echo "<option value='".$registropreciomin['Precio']."' >&nbsp;&nbsp;".$registropreciomin['Precio']."</option>";
  6.       }
Creo que al utilizar el paginador se pierden los valores seleccionados que debe mostrar.
Sigo haciendo pruebas pero tengo claro que necesito ayuda.

gracias de nuevo.
__________________
¿Hay algo mas hermoso que ayudar.?

Etiquetas: paginador, resultados, select, tabla, variables
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 16:05.